vlc | branch: master | Prince Gupta <guptaprince8...@gmail.com> | Wed Feb 3 23:00:44 2021 +0530| [71afe6386e723709392c10f171dcc45789f36b5f] | committer: Pierre Lamot
qml: move CSD and playlist controls of Player in TopBar widget Signed-off-by: Pierre Lamot <pie...@videolabs.io> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=71afe6386e723709392c10f171dcc45789f36b5f --- modules/gui/qt/player/qml/Player.qml | 92 ++++-------------------------------- modules/gui/qt/player/qml/TopBar.qml | 69 +++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 83 deletions(-) diff --git a/modules/gui/qt/player/qml/Player.qml b/modules/gui/qt/player/qml/Player.qml index 6f79bdaeac..928b1ff8ec 100644 --- a/modules/gui/qt/player/qml/Player.qml +++ b/modules/gui/qt/player/qml/Player.qml @@ -210,6 +210,7 @@ Widgets.NavigableFocusScope { right: parent.right } + z: 1 edge: Widgets.DrawerExt.Edges.Top property var autoHide: topcontrolView.contentItem.autoHide @@ -240,7 +241,13 @@ Widgets.NavigableFocusScope { navigationParent: rootPlayer navigationDownItem: playlistpopup.showPlaylist ? playlistpopup : (audioControls.visible ? audioControls : controlBarView) - navigationRightItem: csdGroup + + onTooglePlaylistVisibility: { + if (mainInterface.playlistDocked) + playlistpopup.showPlaylist = !playlistpopup.showPlaylist + else + mainInterface.playlistVisible = !mainInterface.playlistVisible + } } ResumeDialog { @@ -486,7 +493,7 @@ Widgets.NavigableFocusScope { colors: rootPlayer.colors navigationParent: rootPlayer - navigationUpItem: csdGroup + navigationUpItem: topcontrolView navigationDownItem: controlBarView navigationLeft: closePlaylist navigationCancel: closePlaylist @@ -507,87 +514,6 @@ Widgets.NavigableFocusScope { } } - Widgets.DrawerExt { - id: csdGroup - - anchors.right: parent.right - anchors.top: parent.top - state: topcontrolView.state - edge: Widgets.DrawerExt.Edges.Top - width: contentItem.width - focus: true - - component: Column { - spacing: VLCStyle.margin_xxsmall - focus: true - - onActiveFocusChanged: if (activeFocus) menu_selector.forceActiveFocus() - - Loader { - focus: false - anchors.right: parent.right - height: VLCStyle.icon_normal - active: mainInterface.clientSideDecoration - enabled: mainInterface.clientSideDecoration - visible: mainInterface.clientSideDecoration - source: "qrc:///widgets/CSDWindowButtonSet.qml" - onLoaded: { - item.color = Qt.binding(function() { return rootPlayer.colors.playerFg }) - item.hoverColor = Qt.binding(function() { return rootPlayer.colors.windowCSDButtonDarkBg }) - } - } - - Row { - anchors.right: parent.right - anchors.rightMargin: VLCStyle.applicationHorizontalMargin + VLCStyle.margin_xxsmall - focus: true - spacing: VLCStyle.margin_xxsmall - KeyNavigation.down: playlistpopup.state === "visible" ? playlistpopup : (audioControls.visible ? audioControls : controlBarView) - - Widgets.IconToolButton { - id: menu_selector - - focus: true - size: VLCStyle.banner_icon_size - iconText: VLCIcons.ellipsis - text: i18n.qtr("Menu") - color: rootPlayer.colors.playerFg - property bool acceptFocus: true - - onClicked: contextMenu.popup(this.mapToGlobal(0, height)) - - KeyNavigation.left: topcontrolView - KeyNavigation.right: playlistBtn - - QmlGlobalMenu { - id: contextMenu - ctx: mainctx - } - } - - Widgets.IconToolButton { - id: playlistBtn - - objectName: PlayerControlBarModel.PLAYLIST_BUTTON - size: VLCStyle.banner_icon_size - iconText: VLCIcons.playlist - text: i18n.qtr("Playlist") - color: rootPlayer.colors.playerFg - focus: false - onClicked: { - if (mainInterface.playlistDocked) - playlistpopup.showPlaylist = !playlistpopup.showPlaylist - else - mainInterface.playlistVisible = !mainInterface.playlistVisible - } - property bool acceptFocus: true - - KeyNavigation.left: menu_selector - } - } - } - } - Timer { id: toolbarAutoHide running: true diff --git a/modules/gui/qt/player/qml/TopBar.qml b/modules/gui/qt/player/qml/TopBar.qml index 8fe27db35d..39a05c3e6d 100644 --- a/modules/gui/qt/player/qml/TopBar.qml +++ b/modules/gui/qt/player/qml/TopBar.qml @@ -41,6 +41,12 @@ Widgets.NavigableFocusScope{ property alias title: titleText.text property VLCColors colors: VLCStyle.nightColors + signal tooglePlaylistVisibility() + + function forceFocusOnPlaylistButton() { + playlistButton.forceActiveFocus() + } + Keys.priority: Keys.AfterItem Keys.onPressed: defaultKeyAction(event, 0) @@ -108,6 +114,7 @@ Widgets.NavigableFocusScope{ history.previous() } focus: true + KeyNavigation.right: menuSelector } Image { @@ -135,7 +142,69 @@ Widgets.NavigableFocusScope{ textFormat: Text.PlainText elide: Text.ElideRight } + } + + Column { + spacing: VLCStyle.margin_xxsmall + Layout.alignment: Qt.AlignRight | Qt.AlignTop + + Loader { + focus: false + anchors.right: parent.right + height: VLCStyle.icon_normal + active: mainInterface.clientSideDecoration + enabled: mainInterface.clientSideDecoration + visible: mainInterface.clientSideDecoration + source: "qrc:///widgets/CSDWindowButtonSet.qml" + onLoaded: { + item.color = Qt.binding(function() { return topFocusScope.colors.playerFg }) + item.hoverColor = Qt.binding(function() { return topFocusScope.colors.windowCSDButtonDarkBg }) + } + } + + Row { + anchors.right: parent.right + anchors.rightMargin: VLCStyle.applicationHorizontalMargin + VLCStyle.margin_xxsmall + focus: true + spacing: VLCStyle.margin_xxsmall + + Widgets.IconToolButton { + id: menuSelector + + focus: true + size: VLCStyle.banner_icon_size + iconText: VLCIcons.ellipsis + text: i18n.qtr("Menu") + color: rootPlayer.colors.playerFg + property bool acceptFocus: true + + onClicked: contextMenu.popup(this.mapToGlobal(0, height)) + + KeyNavigation.left: backBtn + KeyNavigation.right: playlistButton + + QmlGlobalMenu { + id: contextMenu + ctx: mainctx + } + } + Widgets.IconToolButton { + id: playlistButton + + objectName: PlayerControlBarModel.PLAYLIST_BUTTON + size: VLCStyle.banner_icon_size + iconText: VLCIcons.playlist + text: i18n.qtr("Playlist") + color: rootPlayer.colors.playerFg + focus: false + + property bool acceptFocus: true + + KeyNavigation.left: menuSelector + onClicked: tooglePlaylistVisibility() + } + } } } } _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits