Warning, /multimedia/haruna/src/qml/Haruna/Components/HamburgerMenu.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Kartikey Subramanium <kartikey@tutanota.com> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Controls 0009 import QtQuick.Layouts 0010 0011 import org.kde.kirigami as Kirigami 0012 import org.kde.haruna 0013 0014 ToolButton { 0015 id: root 0016 0017 property int position: HamburgerMenu.Position.Header 0018 0019 enum Position { 0020 Header = 0, 0021 Footer 0022 } 0023 0024 icon.name: "application-menu" 0025 focusPolicy: Qt.NoFocus 0026 0027 onReleased: { 0028 menu.visible = !menu.visible 0029 } 0030 0031 Menu { 0032 id: menu 0033 0034 y: root.position === HamburgerMenu.Position.Header 0035 ? parent.height + Kirigami.Units.smallSpacing 0036 : -height - Kirigami.Units.smallSpacing 0037 closePolicy: Popup.CloseOnReleaseOutsideParent 0038 0039 MenuItem { 0040 action: appActions.openFileAction 0041 visible: root.position === HamburgerMenu.Position.Footer 0042 } 0043 MenuItem { 0044 action: appActions.openUrlAction 0045 visible: root.position === HamburgerMenu.Position.Footer 0046 } 0047 0048 Menu { 0049 title: i18nc("@action:inmenu", "Recent Files") 0050 0051 Repeater { 0052 model: recentFilesModel 0053 delegate: MenuItem { 0054 text: model.name 0055 onClicked: window.openFile(model.path) 0056 } 0057 } 0058 } 0059 0060 SubtitleTracksMenu { 0061 model: mpv.subtitleTracksModel 0062 isPrimarySubtitleMenu: false 0063 title: i18nc("@title:menu", "Secondary Subtitle") 0064 } 0065 0066 MenuSeparator {} 0067 0068 MenuItem { action: appActions.toggleFullscreenAction } 0069 MenuItem { action: appActions.toggleDeinterlacingAction } 0070 MenuItem { action: appActions.screenshotAction } 0071 0072 MenuSeparator {} 0073 0074 MenuItem { 0075 action: appActions.configureAction 0076 visible: root.position === HamburgerMenu.Position.Footer 0077 } 0078 MenuItem { action: appActions.configureShortcutsAction } 0079 MenuItem { action: appActions.aboutHarunaAction } 0080 0081 MenuSeparator {} 0082 0083 Menu { 0084 title: i18nc("@action:inmenu", "&More") 0085 0086 FileMenu {} 0087 ViewMenu {} 0088 PlaybackMenu {} 0089 VideoMenu {} 0090 SubtitlesMenu {} 0091 AudioMenu {} 0092 SettingsMenu {} 0093 HelpMenu {} 0094 } 0095 } 0096 0097 SubtitleTracksMenu { 0098 id: primarySubtitlesMenu 0099 0100 model: mpv.subtitleTracksModel 0101 isPrimarySubtitleMenu: true 0102 title: i18nc("@title:menu", "Primary Subtitle") 0103 0104 Component.onCompleted: { 0105 if (root.position === HamburgerMenu.Position.Footer) { 0106 menu.insertMenu(4, primarySubtitlesMenu) 0107 } 0108 } 0109 } 0110 0111 Menu { 0112 id: audioMenu 0113 0114 title: i18nc("@title:menu", "&Audio Track") 0115 enabled: mpv.audioTracksModel.rowCount() > 0 0116 0117 Repeater { 0118 id: audioMenuInstantiator 0119 model: mpv.audioTracksModel 0120 delegate: MenuItem { 0121 id: audioMenuItem 0122 checkable: true 0123 checked: model.id === mpv.audioId 0124 text: model.text 0125 onTriggered: mpv.audioId = model.id 0126 } 0127 } 0128 0129 Component.onCompleted: { 0130 if (root.position === HamburgerMenu.Position.Footer) { 0131 menu.insertMenu(5, audioMenu) 0132 } 0133 } 0134 } 0135 }