vlc | branch: master | Pierre Lamot <[email protected]> | Thu Aug 29 09:44:26 2019 +0200| [d6476f1640b53f9f5fa655e36dc9c6a52efbc34f] | committer: Jean-Baptiste Kempf
qml: make PlayerButtonLayout a FocusScope. this avoids referencing internal items from outside for navigation > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d6476f1640b53f9f5fa655e36dc9c6a52efbc34f --- modules/gui/qt/qml/player/ControlBar.qml | 28 ++++++----------------- modules/gui/qt/qml/player/MiniPlayer.qml | 12 ++++++---- modules/gui/qt/qml/player/PlayerButtonsLayout.qml | 22 +++++++++++++++--- 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/modules/gui/qt/qml/player/ControlBar.qml b/modules/gui/qt/qml/player/ControlBar.qml index 87d2e0ac12..7921a914a1 100644 --- a/modules/gui/qt/qml/player/ControlBar.qml +++ b/modules/gui/qt/qml/player/ControlBar.qml @@ -84,8 +84,13 @@ Utils.NavigableFocusScope { Keys.onDownPressed: buttons.focus = true } - Utils.NavigableFocusScope { + + PlayerButtonsLayout { id: buttons + + model: playerControlBarModel + forceColors: true + Layout.fillHeight: true Layout.fillWidth: true @@ -105,27 +110,8 @@ Utils.NavigableFocusScope { Keys.priority: Keys.AfterItem Keys.onPressed: defaultKeyAction(event, 0) - - ToolBar { - id: buttonstoolbar - focusPolicy: Qt.StrongFocus - focus: true - rightPadding: 0 - leftPadding: 0 - anchors.fill: parent - - background: Rectangle { - color: "transparent" - } - - PlayerButtonsLayout { - focus: true - anchors.fill: parent - model: playerControlBarModel - forceColors: true - } - } } + } Connections{ target: rootWindow diff --git a/modules/gui/qt/qml/player/MiniPlayer.qml b/modules/gui/qt/qml/player/MiniPlayer.qml index 7f83087377..89ee15f792 100644 --- a/modules/gui/qt/qml/player/MiniPlayer.qml +++ b/modules/gui/qt/qml/player/MiniPlayer.qml @@ -125,7 +125,7 @@ Utils.NavigableFocusScope { } } - KeyNavigation.right: buttonrow.children[0].item + KeyNavigation.right: buttonrow } Item { @@ -138,16 +138,20 @@ Utils.NavigableFocusScope { Layout.rightMargin: VLCStyle.margin_normal model: miniPlayerModel defaultSize: VLCStyle.icon_normal - } + + onActionUp: root.actionUp(index) + onActionDown: root.actionDown(index) + onActionLeft: playingItemInfo.forceActiveFocus() + onActionRight: root.actionRight(index) + onActionCancel: root.actionCancel(index) + } } Connections{ target: rootWindow onToolBarConfUpdated: { - playingItemInfo.KeyNavigation.right = null miniPlayerModel.reloadModel() - playingItemInfo.KeyNavigation.right = buttonrow.children[0].item } } diff --git a/modules/gui/qt/qml/player/PlayerButtonsLayout.qml b/modules/gui/qt/qml/player/PlayerButtonsLayout.qml index df96583817..e75b0b4f62 100644 --- a/modules/gui/qt/qml/player/PlayerButtonsLayout.qml +++ b/modules/gui/qt/qml/player/PlayerButtonsLayout.qml @@ -26,13 +26,27 @@ import org.videolan.vlc 0.1 import "qrc:///style/" import "qrc:///utils/" as Utils -RowLayout{ - id: buttonrow - property bool _focusGiven: false +Utils.NavigableFocusScope { + id: playerButtonsLayout property alias model: buttonsRepeater.model property var defaultSize: VLCStyle.icon_medium property bool forceColors: false + property alias implicitWidth: buttonrow.implicitWidth + property alias implicitHeight: buttonrow.implicitHeight + + Keys.priority: Keys.AfterItem + Keys.onPressed: { + if (!event.accepted) + defaultKeyAction(event, 0) + } + +RowLayout{ + id: buttonrow + property bool _focusGiven: false + + anchors.fill: parent + Repeater{ id: buttonsRepeater delegate: Loader{ @@ -71,3 +85,5 @@ RowLayout{ } } } + +} _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
