Merge pull request 'fix(ui): keep Space for playback after mouse clicks' (#5) from fix/menu-space-key-trap into main

Reviewed-on: #5
This commit was merged in pull request #5.
This commit is contained in:
tri committed 2026-11-11 20:16:11 +07:00
commit 41188fc665
5 files changed
+22 -20

No files matched your search

+8 -7
View File
@@ -13,7 +13,8 @@ import org.kde.kirigami as Kirigami
Item { Item {
id: root id: root
// Space activates the focused control before the window's playback action. // Space activates the focused control before the window's playback action. The
// controls take focus only from Tab, so a click leaves Space for playback.
Keys.onShortcutOverride: event => { Keys.onShortcutOverride: event => {
if (event.key === Qt.Key_Space && event.modifiers === Qt.NoModifier) { if (event.key === Qt.Key_Space && event.modifiers === Qt.NoModifier) {
event.accepted = true event.accepted = true
@@ -137,7 +138,7 @@ Item {
actions: root.actions actions: root.actions
mpv: root.mpv mpv: root.mpv
inFooter: true inFooter: true
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
visible: root.showMenuButton visible: root.showMenuButton
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
@@ -149,7 +150,7 @@ Item {
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
ToolTip.text: root.mpv.paused ? KI18n.i18nc("@info:tooltip", "Start playback") : KI18n.i18nc("@info:tooltip", "Pause playback") ToolTip.text: root.mpv.paused ? KI18n.i18nc("@info:tooltip", "Start playback") : KI18n.i18nc("@info:tooltip", "Pause playback")
ToolTip.visible: hovered ToolTip.visible: hovered
@@ -162,7 +163,7 @@ Item {
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
ToolTip.text: KI18n.i18nc("@info:tooltip", "Play previous file") ToolTip.text: KI18n.i18nc("@info:tooltip", "Play previous file")
ToolTip.visible: hovered ToolTip.visible: hovered
@@ -175,7 +176,7 @@ Item {
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
ToolTip.text: KI18n.i18nc("@info:tooltip", "Play next file") ToolTip.text: KI18n.i18nc("@info:tooltip", "Play next file")
ToolTip.visible: hovered ToolTip.visible: hovered
@@ -195,7 +196,7 @@ Item {
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
ToolTip.text: root.actions.mute.text ToolTip.text: root.actions.mute.text
ToolTip.visible: hovered ToolTip.visible: hovered
@@ -225,7 +226,7 @@ Item {
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
visible: !QtPotatoSettings.playlistToggleWithMouse visible: !QtPotatoSettings.playlistToggleWithMouse
ToolTip.text: text ToolTip.text: text
+9 -8
View File
@@ -12,7 +12,8 @@ import org.kde.kirigami as Kirigami
ToolBar { ToolBar {
id: root id: root
// Space activates the focused control before the window's playback action. // Space activates the focused control before the window's playback action. The
// controls take focus only from Tab, so a click leaves Space for playback.
Keys.onShortcutOverride: event => { Keys.onShortcutOverride: event => {
if (event.key === Qt.Key_Space && event.modifiers === Qt.NoModifier) { if (event.key === Qt.Key_Space && event.modifiers === Qt.NoModifier) {
event.accepted = true event.accepted = true
@@ -40,14 +41,14 @@ ToolBar {
actions: root.actions actions: root.actions
mpv: root.mpv mpv: root.mpv
visible: !root.menuBarShown visible: !root.menuBarShown
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
} }
ToolButton { ToolButton {
action: root.actions.openFile action: root.actions.openFile
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon
@@ -59,7 +60,7 @@ ToolBar {
ToolButton { ToolButton {
action: root.actions.openUrl action: root.actions.openUrl
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon
@@ -77,7 +78,7 @@ ToolBar {
icon.name: "add-subtitle" icon.name: "add-subtitle"
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
enabled: root.mpv.fileLoaded enabled: root.mpv.fileLoaded
opacity: enabled ? 1.0 : 0.6 opacity: enabled ? 1.0 : 0.6
display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon
@@ -111,7 +112,7 @@ ToolBar {
icon.name: "audio-volume-high" icon.name: "audio-volume-high"
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
enabled: root.mpv.audioTracks.length > 0 enabled: root.mpv.audioTracks.length > 0
opacity: enabled ? 1.0 : 0.6 opacity: enabled ? 1.0 : 0.6
display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon
@@ -162,7 +163,7 @@ ToolBar {
ToolButton { ToolButton {
action: root.actions.cancelTranslation action: root.actions.cancelTranslation
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
ToolTip.text: text ToolTip.text: text
ToolTip.visible: hovered ToolTip.visible: hovered
@@ -176,7 +177,7 @@ ToolBar {
ToolButton { ToolButton {
action: root.actions.configure action: root.actions.configure
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon display: root.isSmallSize ? AbstractButton.IconOnly : AbstractButton.TextBesideIcon
+3 -3
View File
@@ -63,7 +63,7 @@ Page {
icon.name: "list-add" icon.name: "list-add"
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
onClicked: root.addFilesRequested() onClicked: root.addFilesRequested()
} }
@@ -73,7 +73,7 @@ Page {
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
enabled: root.playlist.playingIndex >= 0 enabled: root.playlist.playingIndex >= 0
onClicked: playlistView.positionViewAtIndex(root.playlist.playingIndex, ListView.Center) onClicked: playlistView.positionViewAtIndex(root.playlist.playingIndex, ListView.Center)
@@ -88,7 +88,7 @@ Page {
icon.width: root.buttonSize icon.width: root.buttonSize
icon.height: root.buttonSize icon.height: root.buttonSize
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
enabled: root.playlist.count > 0 enabled: root.playlist.count > 0
onClicked: root.playlist.clear() onClicked: root.playlist.clear()
+1 -1
View File
@@ -54,7 +54,7 @@ Slider {
from: 0 from: 0
to: Math.max(root.mpv.duration, 0) to: Math.max(root.mpv.duration, 0)
enabled: root.mpv.fileLoaded && root.mpv.duration > 0 enabled: root.mpv.fileLoaded && root.mpv.duration > 0
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
// Preserve the Slider's own arrow-key behavior when playback shortcuts exist. // Preserve the Slider's own arrow-key behavior when playback shortcuts exist.
Keys.onShortcutOverride: event => { Keys.onShortcutOverride: event => {
+1 -1
View File
@@ -20,7 +20,7 @@ Slider {
implicitWidth: Kirigami.Units.gridUnit * 5 implicitWidth: Kirigami.Units.gridUnit * 5
wheelEnabled: true wheelEnabled: true
stepSize: QtPotatoSettings.volumeStep stepSize: QtPotatoSettings.volumeStep
focusPolicy: Qt.StrongFocus focusPolicy: Qt.TabFocus
// Let the Slider consume navigation keys before window playback shortcuts. // Let the Slider consume navigation keys before window playback shortcuts.
Keys.onShortcutOverride: event => { Keys.onShortcutOverride: event => {