vlc | branch: master | Pierre Lamot <[email protected]> | Wed Jul 17 14:36:40 2019 +0200| [1f7b2bea07126739855d1f06d6a8f916ac309683] | committer: Jean-Baptiste Kempf
qml: fix docked playlist navigation this allows to specify the widget that asked the playlist to open and to return to it when closing. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1f7b2bea07126739855d1f06d6a8f916ac309683 --- modules/gui/qt/qml/BannerSources.qml | 10 +++++++++- modules/gui/qt/qml/mediacenter/MCMainDisplay.qml | 25 ++++++++++++++++-------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/modules/gui/qt/qml/BannerSources.qml b/modules/gui/qt/qml/BannerSources.qml index 1b3726c1bd..529b3e4851 100644 --- a/modules/gui/qt/qml/BannerSources.qml +++ b/modules/gui/qt/qml/BannerSources.qml @@ -45,6 +45,9 @@ Utils.NavigableFocusScope { property alias subTabModel: model_music_id.model signal toogleMenu() + + property var playlistWidget: undefined + // Triggered when the toogleView button is selected function toggleView () { medialib.gridView = !medialib.gridView @@ -348,7 +351,12 @@ Utils.NavigableFocusScope { size: VLCStyle.icon_normal text: VLCIcons.playlist - onClicked: rootWindow.playlistVisible = !rootWindow.playlistVisible + onClicked: { + rootWindow.playlistVisible = !rootWindow.playlistVisible + if (playlistWidget && rootWindow.playlistVisible && rootWindow.playlistDocked) + playlistWidget.gainFocus(playlist_btn) + + } KeyNavigation.right: menu_selector KeyNavigation.up: buttonView diff --git a/modules/gui/qt/qml/mediacenter/MCMainDisplay.qml b/modules/gui/qt/qml/mediacenter/MCMainDisplay.qml index e1d94c9222..269e6f69ee 100644 --- a/modules/gui/qt/qml/mediacenter/MCMainDisplay.qml +++ b/modules/gui/qt/qml/mediacenter/MCMainDisplay.qml @@ -89,7 +89,12 @@ Utils.NavigableFocusScope { focus: true id: medialibId anchors.fill: parent - onActionRight: rootWindow.playlistVisible = true + onActionRight: { + if (rootWindow.playlistDocked) { + rootWindow.playlistVisible = true + playlist.gainFocus(medialibId) + } + } ColumnLayout { id: column @@ -110,6 +115,8 @@ Utils.NavigableFocusScope { focus: true model: root.tabModel + playlistWidget: playlist + onItemClicked: { sourcesBanner.subTabModel = undefined @@ -203,10 +210,13 @@ Utils.NavigableFocusScope { focus: false expandHorizontally: true + property var previousFocus: undefined + state: (rootWindow.playlistDocked && rootWindow.playlistVisible) ? "visible" : "hidden" - onVisibleChanged: { - if (playlist.visible) - playlist.forceActiveFocus() + + function gainFocus(previous) { + playlist.previousFocus = previous + playlist.forceActiveFocus() } component: Rectangle { color: VLCStyle.colors.setColorAlpha(VLCStyle.colors.banner, 0.9) @@ -225,16 +235,15 @@ Utils.NavigableFocusScope { focus: true anchors.fill: parent onActionLeft: playlist.closeAndFocus(stackView.currentItem) - onActionCancel: playlist.closeAndFocus(stackView.currentItem) - onActionUp: playlist.closeAndFocus(sourcesBanner) + onActionCancel: playlist.closeAndFocus(playlist.previousFocus) + onActionUp: playlist.closeAndFocus(playlist.previousFocus) } } } function closeAndFocus(item){ + rootWindow.playlistVisible = false if (!item) return - - rootWindow.playlistVisible = false item.forceActiveFocus() } } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
