[vlc-commits] qml: only show the playlist on demand within the player view
Pierre Lamot
git at videolan.org
Mon Oct 14 11:59:36 CEST 2019
vlc | branch: master | Pierre Lamot <pierre at videolabs.io> | Thu Sep 26 18:11:04 2019 +0200| [075f3bb85d98ed1292e9c241c95398d241709a4c] | committer: Jean-Baptiste Kempf
qml: only show the playlist on demand within the player view
the playlist shown independently from the global display state of the
playlist. This allows to avoid displaying the playlist within the player
when starting a video.
When the playlist isn't docked, toggling the playlist display state will
continue to affect the floating playlist visiblity
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=075f3bb85d98ed1292e9c241c95398d241709a4c
---
modules/gui/qt/qml/player/Player.qml | 45 ++++++++++++++++++------------------
modules/gui/qt/qml/player/TopBar.qml | 9 +++-----
2 files changed, 26 insertions(+), 28 deletions(-)
diff --git a/modules/gui/qt/qml/player/Player.qml b/modules/gui/qt/qml/player/Player.qml
index 45c8da989b..74e72e8c77 100644
--- a/modules/gui/qt/qml/player/Player.qml
+++ b/modules/gui/qt/qml/player/Player.qml
@@ -30,8 +30,6 @@ import "qrc:///menus/" as Menus
Utils.NavigableFocusScope {
id: rootPlayer
- property alias playlistWidget: playlistpopup
-
//center image
Rectangle {
visible: !rootWindow.hasEmbededVideo
@@ -159,8 +157,15 @@ Utils.NavigableFocusScope {
toolbarAutoHide.restart()
}
+ onTogglePlaylistVisiblity: {
+ if (rootWindow.playlistDocked)
+ playlistpopup.showPlaylist = !playlistpopup.showPlaylist
+ else
+ rootWindow.playlistVisible = !rootWindow.playlistVisible
+ }
+
navigationParent: rootPlayer
- navigationDown: function () { controlBarView.forceActiveFocus() }
+ navigationDownItem: playlistpopup.showPlaylist ? playlistpopup : controlBarView
Keys.onPressed: {
if (event.accepted)
@@ -181,11 +186,11 @@ Utils.NavigableFocusScope {
right: parent.right
bottom: controlBarView.top
}
-
+ property bool showPlaylist: false
property var previousFocus: undefined
focus: false
edge: Utils.DrawerExt.Edges.Right
- state: (rootWindow.playlistDocked && rootWindow.playlistVisible) ? "visible" : "hidden"
+ state: showPlaylist && rootWindow.playlistDocked ? "visible" : "hidden"
component: Rectangle {
color: VLCStyle.colors.setColorAlpha(VLCStyle.colors.banner, 0.8)
width: rootPlayer.width/4
@@ -195,28 +200,24 @@ Utils.NavigableFocusScope {
id: playlistView
focus: true
anchors.fill: parent
- onActionLeft: playlistpopup.closeAndFocus(playlistpopup.previousFocus)
- onActionCancel: playlistpopup.closeAndFocus(playlistpopup.previousFocus)
+
+ navigationParent: rootPlayer
+ navigationUpItem: topcontrolView
+ navigationDownItem: controlBarView
+ navigationLeft: function() {
+ playlistpopup.showPlaylist = false
+ controlBarView.forceActiveFocus()
+ }
+ navigationCancel: function() {
+ playlistpopup.showPlaylist = false
+ controlBarView.forceActiveFocus()
+ }
}
}
onStateChanged: {
if (state === "hidden")
toolbarAutoHide.restart()
}
-
- function gainFocus(previous) {
- console.log("gain Focus")
- playlistpopup.previousFocus = previous
- playlistpopup.forceActiveFocus()
- }
-
-
- function closeAndFocus(item){
- rootWindow.playlistVisible = false
- if (!item)
- return
- item.forceActiveFocus()
- }
}
Utils.DrawerExt {
@@ -260,7 +261,7 @@ Utils.NavigableFocusScope {
}
navigationParent: rootPlayer
- navigationUp: function() { topcontrolView.forceActiveFocus() }
+ navigationUpItem: playlistpopup.showPlaylist ? playlistpopup : topcontrolView
//unhandled keys are forwarded as hotkeys
Keys.onPressed: {
diff --git a/modules/gui/qt/qml/player/TopBar.qml b/modules/gui/qt/qml/player/TopBar.qml
index e818d44347..a519095309 100644
--- a/modules/gui/qt/qml/player/TopBar.qml
+++ b/modules/gui/qt/qml/player/TopBar.qml
@@ -34,6 +34,8 @@ Utils.NavigableFocusScope{
|| topcontrollerMouseArea.containsMouse || lockAutoHide
property bool lockAutoHide: false
+ signal togglePlaylistVisiblity();
+
Keys.priority: Keys.AfterItem
Keys.onPressed: defaultKeyAction(event, 0)
@@ -79,12 +81,7 @@ Utils.NavigableFocusScope{
size: VLCStyle.icon_normal
text: VLCIcons.playlist
color: VLCStyle.colors.playerFg
- onClicked: {
- rootWindow.playlistVisible = !rootWindow.playlistVisible
- if (rootWindow.playlistVisible && rootWindow.playlistDocked) {
- playlistWidget.gainFocus(playlistBtn)
- }
- }
+ onClicked: togglePlaylistVisiblity()
property bool acceptFocus: true
}
}
More information about the vlc-commits
mailing list