[vlc-devel] [PATCH 16/27] qml: hide playlist overlay menu items according to model properties
Fatih Uzunoglu
fuzun54 at outlook.com
Fri Oct 9 18:56:37 CEST 2020
---
.../gui/qt/playlist/qml/PlaylistListView.qml | 23 +++++++++++++++++++
modules/gui/qt/playlist/qml/PlaylistMenu.qml | 5 +++-
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/modules/gui/qt/playlist/qml/PlaylistListView.qml b/modules/gui/qt/playlist/qml/PlaylistListView.qml
index 088a08e493..c99b5577f5 100644
--- a/modules/gui/qt/playlist/qml/PlaylistListView.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistListView.qml
@@ -74,6 +74,9 @@ Widgets.NavigableFocusScope {
leftPadding: root.leftPadding
rightPadding: root.rightPadding
+ isPLEmpty: (root.plmodel.count === 0)
+ isItemNotSelected: (root.plmodel.selectedCount === 0)
+
//rootmenu
Action { id:playAction; text: i18n.qtr("Play"); onTriggered: mainPlaylistController.goTo(root.plmodel.getSelection()[0], true); icon.source: "qrc:///toolbar/play_b.svg" }
Action { id:streamAction; text: i18n.qtr("Stream"); onTriggered: dialogProvider.streamingDialog(root.plmodel.getSelection().map(function(i) { return root.plmodel.itemAt(i).url; }), false); icon.source: "qrc:/menu/stream.svg" }
@@ -134,6 +137,26 @@ Widgets.NavigableFocusScope {
deleteAction
]
},
+ "rootmenu_plempty" : {
+ title: i18n.qtr("Playlist"),
+ entries: [
+ addFileAction,
+ addDirAction,
+ addAdvancedAction
+ ]
+ },
+ "rootmenu_noselection" : {
+ title: i18n.qtr("Playlist"),
+ entries: [
+ addFileAction,
+ addDirAction,
+ addAdvancedAction,
+ savePlAction,
+ clearAllAction,
+ sortAction,
+ selectTracksAction
+ ]
+ },
"sortmenu" :{
title: i18n.qtr("Sort Playlist"),
entries: [
diff --git a/modules/gui/qt/playlist/qml/PlaylistMenu.qml b/modules/gui/qt/playlist/qml/PlaylistMenu.qml
index 6f491f2b10..24ec66db57 100644
--- a/modules/gui/qt/playlist/qml/PlaylistMenu.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistMenu.qml
@@ -34,6 +34,9 @@ Widgets.NavigableFocusScope {
property int leftPadding: 0
property int rightPadding: 0
+ property bool isPLEmpty: false
+ property bool isItemNotSelected: false
+
onActiveFocusChanged: {
if (!activeFocus) {
overlayMenu.close()
@@ -46,7 +49,7 @@ Widgets.NavigableFocusScope {
}
function open() {
- playlistMenu.currentModel = "rootmenu"
+ playlistMenu.currentModel = isPLEmpty ? "rootmenu_plempty" : (isItemNotSelected ? "rootmenu_noselection" : "rootmenu")
playlistMenu.menuHierachy = []
overlayMenu.visible = true
overlayMenu.forceActiveFocus()
--
2.25.1
More information about the vlc-devel
mailing list