feat: rebuild the interface after Haruna

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
triandClaude Opus 5.5 committed 2026-10-28 09:26:47 +07:00
1 parent 54ad4eecf3
commit 614a31db1b
45 files changed
+3818 -798

No files matched your search

+96
View File
@@ -0,0 +1,96 @@
// 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
Menu {
id: menu
y: root.inFooter ? -height - Kirigami.Units.largeSpacing : root.height + Kirigami.Units.largeSpacing
modal: true
dim: false
MenuItem {
action: root.actions.openFile
visible: root.inFooter
height: visible ? implicitHeight : 0
}
MenuItem {
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 {}
MenuItem { action: root.actions.translateSubtitle }
MenuItem { action: root.actions.toggleFullscreen }
MenuItem { action: root.actions.togglePlaylist }
MenuItem { action: root.actions.screenshot }
MenuSeparator {}
MenuItem {
action: root.actions.configure
visible: root.inFooter
height: visible ? implicitHeight : 0
}
MenuItem { action: root.actions.toggleMenuBar }
MenuItem { action: root.actions.about }
MenuSeparator {}
Menu {
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 }
}
}
}