Files
QtPotato/src/qml/HamburgerMenu.qml
T
tri de9e6484ee feat(ui): style app menus and extract glossary dialog
- Add AppMenu and AppMenuItem so menu labels, mnemonics and shortcuts render consistently under org.kde.union
- Move the translation glossary into GlossaryDialog with add, remove and clear-all actions
- Regroup the translation preset and instructions settings layout
2026-11-07 15:03:37 +07:00

97 lines
3.1 KiB
QML

// SPDX-FileCopyrightText: 2020 George Florea Bănuș <georgefb899@gmail.com>
// SPDX-FileCopyrightText: 2026 Tri Vo Khac
// SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick
import QtQuick.Controls
import org.kde.ki18n
import org.kde.kirigami as Kirigami
// The application menu button, used when the menu bar is hidden.
ToolButton {
id: root
required property Actions actions
required property MpvItem mpv
// In the footer the menu opens upwards and also offers what the header would.
property bool inFooter: false
readonly property alias isOpen: menu.visible
icon.name: "application-menu"
text: KI18n.i18nc("@action:button", "Main Menu")
display: AbstractButton.IconOnly
focusPolicy: Qt.NoFocus
down: menu.visible
// The menu is modal, so a click outside it (also on this button) only closes it.
onPressed: menu.open()
ToolTip.text: text
ToolTip.visible: hovered && !menu.visible
ToolTip.delay: Kirigami.Units.toolTipDelay
AppMenu {
id: menu
y: root.inFooter ? -height - Kirigami.Units.largeSpacing : root.height + Kirigami.Units.largeSpacing
modal: true
dim: false
AppMenuItem {
action: root.actions.openFile
visible: root.inFooter
height: visible ? implicitHeight : 0
}
AppMenuItem {
action: root.actions.openUrl
visible: root.inFooter
height: visible ? implicitHeight : 0
}
RecentFilesMenu { actions: root.actions }
SubtitleTracksMenu {
mpv: root.mpv
isPrimary: true
title: KI18n.i18nc("@title:menu", "Primary Subtitle")
}
SubtitleTracksMenu {
mpv: root.mpv
isPrimary: false
title: KI18n.i18nc("@title:menu", "Secondary Subtitle")
}
AudioTracksMenu {
mpv: root.mpv
title: KI18n.i18nc("@title:menu", "Audio Track")
}
MenuSeparator {}
AppMenuItem { action: root.actions.translateSubtitle }
AppMenuItem { action: root.actions.toggleFullscreen }
AppMenuItem { action: root.actions.togglePlaylist }
AppMenuItem { action: root.actions.screenshot }
MenuSeparator {}
AppMenuItem {
action: root.actions.configure
visible: root.inFooter
height: visible ? implicitHeight : 0
}
AppMenuItem { action: root.actions.toggleMenuBar }
AppMenuItem { action: root.actions.about }
MenuSeparator {}
AppMenu {
title: KI18n.i18nc("@title:menu", "&More")
FileMenu { actions: root.actions }
ViewMenu { actions: root.actions }
PlaybackMenu { actions: root.actions }
VideoMenu { actions: root.actions }
SubtitlesMenu {
actions: root.actions
mpv: root.mpv
}
AudioMenu {
actions: root.actions
mpv: root.mpv
}
SettingsMenu { actions: root.actions }
HelpMenu { actions: root.actions }
}
}
}