Browse Source

qml: factorize usage of localMenuDelegate in PageLoader

pull/162/head
Pierre Lamot 3 years ago
committed by Steve Lhomme
parent
commit
e79b1dea71
  1. 13
      modules/gui/qt/network/qml/BrowseDisplay.qml
  2. 9
      modules/gui/qt/network/qml/DiscoverDisplay.qml
  3. 10
      modules/gui/qt/network/qml/ServicesHomeDisplay.qml
  4. 5
      modules/gui/qt/widgets/qml/PageLoader.qml

13
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

9
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

10
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}})

5
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

Loading…
Cancel
Save