diff --git a/modules/gui/qt/network/qml/BrowseDisplay.qml b/modules/gui/qt/network/qml/BrowseDisplay.qml index fe1a47670a..515f268046 100644 --- a/modules/gui/qt/network/qml/BrowseDisplay.qml +++ b/modules/gui/qt/network/qml/BrowseDisplay.qml @@ -29,9 +29,6 @@ import "qrc:///style/" Widgets.PageLoader { id: root - // Properties - property Component localMenuDelegate - // Settings pageModel: [{ @@ -54,17 +51,11 @@ Widgets.PageLoader { loadPage("home") } + localMenuDelegate: (view.name !== "home") ? componentBar : null + Accessible.role: Accessible.Client Accessible.name: I18n.qtr("Browse view") - // Events - onCurrentItemChanged: { - if (view.name === "home") - localMenuDelegate = null - else - localMenuDelegate = componentBar - } - // Connections Connections { target: (Helpers.isValidInstanceOf(currentItem, BrowseHomeDisplay)) ? currentItem diff --git a/modules/gui/qt/network/qml/DiscoverDisplay.qml b/modules/gui/qt/network/qml/DiscoverDisplay.qml index b27c42c31b..417f470051 100644 --- a/modules/gui/qt/network/qml/DiscoverDisplay.qml +++ b/modules/gui/qt/network/qml/DiscoverDisplay.qml @@ -45,14 +45,11 @@ Widgets.PageLoader { loadPage("services") } + localMenuDelegate: menuDelegate + Accessible.role: Accessible.Client Accessible.name: I18n.qtr("Discover view") - onCurrentItemChanged: { - localMenuDelegate = !!currentItem.localMenuDelegate ? currentItem.localMenuDelegate : menuDelegate - } - - function loadIndex(index) { History.push(["mc", "discover", root.pageModel[index].name]) } @@ -69,8 +66,6 @@ Widgets.PageLoader { } } - property Component localMenuDelegate: menuDelegate - Component { id: menuDelegate diff --git a/modules/gui/qt/network/qml/ServicesHomeDisplay.qml b/modules/gui/qt/network/qml/ServicesHomeDisplay.qml index 51aa696db2..fea7ad5180 100644 --- a/modules/gui/qt/network/qml/ServicesHomeDisplay.qml +++ b/modules/gui/qt/network/qml/ServicesHomeDisplay.qml @@ -30,8 +30,6 @@ import "qrc:///style/" Widgets.PageLoader { id: root - property Component localMenuDelegate: null - pageModel: [{ name: "all", url: "qrc:///network/ServicesSources.qml" @@ -52,10 +50,6 @@ Widgets.PageLoader { loadPage("all") } - onCurrentItemChanged: { - localMenuDelegate = !!currentItem.addressBar ? currentItem.addressBar : null - } - function setCurrentItemFocus(reason) { stackView.currentItem.setCurrentItemFocus(reason); } @@ -66,7 +60,7 @@ Widgets.PageLoader { BrowseTreeDisplay { property alias source_name: deviceModel.source_name - property Component addressBar: NetworkAddressbar { + property Component localMenuDelegate: NetworkAddressbar { path: [{display: deviceModel.name, tree: {}}] onHomeButtonClicked: History.push(["mc", "discover", "services"], reason) @@ -101,7 +95,7 @@ Widgets.PageLoader { property string root_name property string source_name - property Component addressBar: NetworkAddressbar { + property Component localMenuDelegate: NetworkAddressbar { path: { const _path = mediaModel.path _path.unshift({display: root_name, tree: {"source_name": source_name, "isRoot": true}}) diff --git a/modules/gui/qt/widgets/qml/PageLoader.qml b/modules/gui/qt/widgets/qml/PageLoader.qml index ae27f6277e..2ae98ab2b4 100644 --- a/modules/gui/qt/widgets/qml/PageLoader.qml +++ b/modules/gui/qt/widgets/qml/PageLoader.qml @@ -45,6 +45,11 @@ StackViewExt { readonly property var sortModel: (currentItem && currentItem.sortModel !== undefined) ? currentItem.sortModel : null + //property is *not* readOnly, a PageLoader may define a localMenuDelegate common for its subviews (music, video) + property Component localMenuDelegate: (currentItem + && currentItem.localMenuDelegate + && (currentItem.localMenuDelegate instanceof Component)) ? currentItem.localMenuDelegate : null + // Private property bool _ready: false