vlc | branch: master | Abel Tesfaye <[email protected]> | Tue Aug 20 13:17:17 2019 +0300| [3429dd78fee916e6da7fb4574e69063d3896603e] | committer: Jean-Baptiste Kempf
qml: make multiple models to support main networks Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3429dd78fee916e6da7fb4574e69063d3896603e --- .../gui/qt/qml/mediacenter/MCNetworkDisplay.qml | 121 +++++++++++---------- 1 file changed, 64 insertions(+), 57 deletions(-) diff --git a/modules/gui/qt/qml/mediacenter/MCNetworkDisplay.qml b/modules/gui/qt/qml/mediacenter/MCNetworkDisplay.qml index ef11f9c808..f45fb6da0b 100644 --- a/modules/gui/qt/qml/mediacenter/MCNetworkDisplay.qml +++ b/modules/gui/qt/qml/mediacenter/MCNetworkDisplay.qml @@ -71,61 +71,54 @@ Utils.NavigableFocusScope { onClosed: contextMenu.parent.forceActiveFocus() } - Utils.SelectableDelegateModel { - id: delegateModel - model: MLNetworkModel { - id: mlModel - ctx: mainctx - tree: undefined - } + MLNetworkModel { + id: providerModel + ctx: mainctx + tree: undefined + } - delegate: Package { - id: element - Loader { - id: delegateLoaderGrid - focus: true - Package.name: "grid" - source: model.type == MLNetworkModel.TYPE_FILE ? - "qrc:///mediacenter/NetworkFileDisplayGrid.qml" : - "qrc:///mediacenter/NetworkDriveDisplayGrid.qml"; - } + MLNetworkModel { + id: favModel + ctx: mainctx + tree: undefined + sd_source: "SD_CAT_DEVICES" + } + MLNetworkModel { + id: machineModel + ctx: mainctx + tree: undefined + sd_source: "SD_CAT_DEVICES" + } + MLNetworkModel { + id: lanModel + ctx: mainctx + tree: undefined + sd_source: "SD_CAT_LAN" + } - Loader { - id: delegateLoader - focus: true - Package.name: "list" - source: model.type == MLNetworkModel.TYPE_FILE ? - "qrc:///mediacenter/NetworkFileDisplay.qml" : - "qrc:///mediacenter/NetworkDriveDisplay.qml"; - } - Connections { - target: delegateLoader.item - onActionLeft: root.actionLeft(0) - onActionRight: root.actionRight(0) - } + MCNetworksSectionSelectableDM{ + id: delegateModel + model: providerModel + viewIndexPropertyName: "currentIndexProvider" + } - } + MCNetworksSectionSelectableDM{ + id: favDM + model: favModel + viewIndexPropertyName: "currentIndexFavourites" + } - function actionAtIndex(index) { - if ( delegateModel.selectedGroup.count > 1 ) { - var list = [] - for (var i = 0; i < delegateModel.selectedGroup.count; i++) { - var type = delegateModel.selectedGroup.get(i).model.type; - var mrl = delegateModel.selectedGroup.get(i).model.mrl; - if (type == MLNetworkModel.TYPE_FILE) - list.push(mrl) - } - medialib.addAndPlay( list ) - } else { - if (delegateModel.items.get(index).model.type != MLNetworkModel.TYPE_FILE) { - root.tree = delegateModel.items.get(index).model.tree - history.push(["mc", "network", { tree: delegateModel.items.get(index).model.tree }], History.Stay); - } else { - medialib.addAndPlay( delegateModel.items.get(index).model.mrl ); - } - } - } + MCNetworksSectionSelectableDM{ + id: machineDM + model: machineModel + viewIndexPropertyName: "currentIndexMachine" + } + + MCNetworksSectionSelectableDM{ + id: lanDM + model: lanModel + viewIndexPropertyName: "currentIndexLan" } /* @@ -134,12 +127,15 @@ Utils.NavigableFocusScope { * selectedGroup update itself after this event */ onActiveFocusChanged: { - if (activeFocus && delegateModel.items.count > 0 && delegateModel.selectedGroup.count === 0) { + if (delegateModel.items.count > 0 && delegateModel.selectedGroup.count === 0) { var initialIndex = 0 - if (view.currentItem.currentIndex !== -1) - initialIndex = view.currentItem.currentIndex + if (view.currentIndexProvider !== -1) + initialIndex = view.currentIndexProvider delegateModel.items.get(initialIndex).inSelected = true - view.currentItem.currentIndex = initialIndex + view.currentIndexProvider = initialIndex + } + } + } } @@ -199,11 +195,18 @@ Utils.NavigableFocusScope { anchors.fill:parent clip: true focus: true - initialItem: medialib.gridView ? gridComponent : listComponent - property int currentIndex: -1 + initialItem: isOnProviderList ? topComponent : medialib.gridView ? gridComponent : listComponent + property bool isOnProviderList: providerModel.is_on_provider_list + property int currentIndexProvider: -1 + + property int currentIndexFavourites: -1 + property int currentIndexMachine: -1 + property int currentIndexLan: -1 Connections { target: medialib onGridViewChanged: { + if (view.isOnProviderList) + return if (medialib.gridView) view.replace(gridComponent) else @@ -214,7 +217,11 @@ Utils.NavigableFocusScope { Label { anchors.centerIn: parent - visible: delegateModel.items.count === 0 + visible: providerModel.is_on_provider_list? + (machineDM.items.count === 0 + && lanDM.items.count === 0 + && favDM.items.count === 0 ) + : delegateModel.items.count === 0 font.pixelSize: VLCStyle.fontHeight_xxlarge color: root.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.text text: qsTr("No network shares found") _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
