[vlc-commits] [Git][videolan/vlc][master] 8 commits: qml: move EmptyLabel* components to widgets

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Fri May 12 15:09:19 UTC 2023



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
eb971092 by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: move EmptyLabel* components to widgets

- - - - -
d7c6d39c by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: use MainViewLoader in BrowseTreeDisplay

- - - - -
12797e84 by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: implement BrowseTreeHeader

- - - - -
b9bb2e99 by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: use BrowseTreeHeader for grid header

- - - - -
664c891b by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: use BrowseTreeHeader for table header

- - - - -
05ff4fc9 by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: add header to emptylabelcomponent of BrowseTreeDisplay

- - - - -
73931a0f by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: show busyindicator with browse header

- - - - -
44c3da73 by Prince Gupta at 2023-05-12T14:51:48+00:00
qml: fix missing id

root is referenced as Button's Navigation parent but was never set

- - - - -


16 changed files:

- modules/gui/qt/Makefile.am
- modules/gui/qt/medialibrary/qml/MusicAlbums.qml
- modules/gui/qt/medialibrary/qml/MusicAllArtists.qml
- modules/gui/qt/medialibrary/qml/MusicArtistsAlbums.qml
- modules/gui/qt/medialibrary/qml/MusicGenres.qml
- modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
- modules/gui/qt/medialibrary/qml/PlaylistMediaDisplay.qml
- modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml
- modules/gui/qt/medialibrary/qml/VideoAll.qml
- modules/gui/qt/network/qml/BrowseTreeDisplay.qml
- + modules/gui/qt/network/qml/BrowseTreeHeader.qml
- modules/gui/qt/vlc.qrc
- modules/gui/qt/medialibrary/qml/EmptyLabel.qml → modules/gui/qt/widgets/qml/EmptyLabel.qml
- modules/gui/qt/medialibrary/qml/EmptyLabelButton.qml → modules/gui/qt/widgets/qml/EmptyLabelButton.qml
- modules/gui/qt/medialibrary/qml/EmptyLabelHint.qml → modules/gui/qt/widgets/qml/EmptyLabelHint.qml
- po/POTFILES.in


Changes:

=====================================
modules/gui/qt/Makefile.am
=====================================
@@ -847,9 +847,6 @@ libqt_plugin_la_QML = \
 	gui/qt/maininterface/qml/NoMedialibHome.qml \
 	gui/qt/medialibrary/qml/ArtistTopBanner.qml \
 	gui/qt/medialibrary/qml/AudioGridItem.qml \
-	gui/qt/medialibrary/qml/EmptyLabel.qml \
-	gui/qt/medialibrary/qml/EmptyLabelButton.qml \
-	gui/qt/medialibrary/qml/EmptyLabelHint.qml \
 	gui/qt/medialibrary/qml/MediaGroupDisplay.qml \
 	gui/qt/medialibrary/qml/MusicAlbums.qml \
 	gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml \
@@ -888,6 +885,7 @@ libqt_plugin_la_QML = \
 	gui/qt/network/qml/BrowseDisplay.qml \
 	gui/qt/network/qml/BrowseHomeDisplay.qml \
 	gui/qt/network/qml/BrowseTreeDisplay.qml \
+	gui/qt/network/qml/BrowseTreeHeader.qml \
 	gui/qt/network/qml/DiscoverDisplay.qml \
 	gui/qt/network/qml/DiscoverUrlDisplay.qml \
 	gui/qt/network/qml/NetworkAddressbar.qml \
@@ -1006,6 +1004,9 @@ libqt_plugin_la_QML = \
 	gui/qt/widgets/qml/DragItem.qml \
 	gui/qt/widgets/qml/DrawerExt.qml \
 	gui/qt/widgets/qml/ExpandGridView.qml \
+	gui/qt/widgets/qml/EmptyLabel.qml \
+	gui/qt/widgets/qml/EmptyLabelButton.qml \
+	gui/qt/widgets/qml/EmptyLabelHint.qml \
 	gui/qt/widgets/qml/GridItem.qml \
 	gui/qt/widgets/qml/HorizontalResizeHandle.qml \
 	gui/qt/widgets/qml/IconLabel.qml \


=====================================
modules/gui/qt/medialibrary/qml/MusicAlbums.qml
=====================================
@@ -269,7 +269,7 @@ MainInterface.MainViewLoader {
     Component {
         id: emptyLabelComponent
 
-        EmptyLabelButton {
+        Widgets.EmptyLabelButton {
             text: I18n.qtr("No albums found\nPlease try adding sources, by going to the Browse tab")
             Navigation.parentItem: root
             cover: VLCStyle.noArtAlbumCover


=====================================
modules/gui/qt/medialibrary/qml/MusicAllArtists.qml
=====================================
@@ -202,7 +202,7 @@ MainInterface.MainViewLoader {
     Component {
         id: emptyLabelComponent
 
-        EmptyLabelButton {
+        Widgets.EmptyLabelButton {
             text: I18n.qtr("No artists found\nPlease try adding sources, by going to the Browse tab")
             Navigation.parentItem: root
             cover: VLCStyle.noArtArtistCover


=====================================
modules/gui/qt/medialibrary/qml/MusicArtistsAlbums.qml
=====================================
@@ -248,7 +248,7 @@ FocusScope {
         }
     }
 
-    EmptyLabelButton {
+    Widgets.EmptyLabelButton {
         anchors.fill: parent
         visible: artistModel.isReady && (artistModel.count <= 0)
         focus: visible


=====================================
modules/gui/qt/medialibrary/qml/MusicGenres.qml
=====================================
@@ -281,7 +281,7 @@ MainInterface.MainViewLoader {
     Component {
         id: emptyLabelComponent
 
-        EmptyLabelButton {
+        Widgets.EmptyLabelButton {
             text: I18n.qtr("No genres found\nPlease try adding sources, by going to the Browse tab")
             Navigation.parentItem: root
             cover: VLCStyle.noArtAlbumCover


=====================================
modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
=====================================
@@ -72,7 +72,7 @@ FocusScope {
         displayMarginEnd: g_mainDisplay.displayMargin
     }
 
-    EmptyLabelButton {
+    Widgets.EmptyLabelButton {
         anchors.fill: parent
         visible: tracklistdisplay_id.model.isReady && (tracklistdisplay_id.model.count <= 0)
         focus: visible


=====================================
modules/gui/qt/medialibrary/qml/PlaylistMediaDisplay.qml
=====================================
@@ -194,7 +194,7 @@ FocusScope {
         Keys.onDeletePressed: onDelete()
     }
 
-    EmptyLabelButton {
+    Widgets.EmptyLabelButton {
         anchors.fill: parent
 
         visible: model.isReady && (model.count <= 0)


=====================================
modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml
=====================================
@@ -356,7 +356,7 @@ MainInterface.MainViewLoader {
     Component {
         id: emptyLabel
 
-        EmptyLabelHint {
+        Widgets.EmptyLabelHint {
             visible: (model.count === 0)
 
             focus: true


=====================================
modules/gui/qt/medialibrary/qml/VideoAll.qml
=====================================
@@ -283,7 +283,7 @@ MainInterface.MainViewLoader {
     Component {
         id: emptylabel
 
-        EmptyLabelButton {
+        Widgets.EmptyLabelButton {
             coverWidth : VLCStyle.dp(182, VLCStyle.scale)
             coverHeight: VLCStyle.dp(114, VLCStyle.scale)
 


=====================================
modules/gui/qt/network/qml/BrowseTreeDisplay.qml
=====================================
@@ -26,7 +26,7 @@ import "qrc:///widgets/" as Widgets
 import "qrc:///main/" as MainInterface
 import "qrc:///style/"
 
-FocusScope {
+MainInterface.MainViewLoader {
     id: root
 
     // Properties
@@ -39,8 +39,9 @@ FocusScope {
 
     readonly property bool isViewMultiView: true
 
-    //the index to "go to" when the view is loaded
-    property var initialIndex: 0
+     // 'parsingPending' property is not available with NetworkDevicesModel
+    readonly property bool parsing: Helpers.get(providerModel, "parsingPending", false)
+
     property var sortModel: [
         { text: I18n.qtr("Alphabetic"), criteria: "name"},
         { text: I18n.qtr("Url"), criteria: "mrl" },
@@ -48,14 +49,8 @@ FocusScope {
         { text: I18n.qtr("File modified"), criteria: "fileModified" }
     ]
 
-    // Aliases
-
-    property alias leftPadding: view.leftPadding
-    property alias rightPadding: view.rightPadding
-
-    property alias model: filterModel
-
-    property alias _currentView: view.currentItem
+    // fixme remove this
+    property Item _currentView: currentItem
 
     signal browse(var tree, int reason)
 
@@ -63,31 +58,47 @@ FocusScope {
         History.previous()
     }
 
-    onTreeChanged: providerModel.tree = tree
+    model: SortFilterProxyModel {
+        id: filterModel
 
-    function playSelected() {
-        providerModel.addAndPlay(filterModel.mapIndexesToSource(selectionModel.selectedIndexes))
+        sourceModel: providerModel
+        searchRole: "name"
     }
 
-    function playAt(index) {
-        providerModel.addAndPlay(filterModel.mapIndexToSource(index))
+    // override the default currentComponent assignment from MainViewLoader
+    // because we need to show empty label when model is parsing
+    currentComponent: {
+        if (filterModel.count == 0 || root.parsing)
+            return emptyLabelComponent
+        else if (MainCtx.gridView)
+            return gridComponent
+        else
+            return tableComponent
     }
 
-    function setCurrentItemFocus(reason) {
-        _currentView.setCurrentItemFocus(reason);
-    }
 
-    Util.SelectableDelegateModel{
-        id: selectionModel
+    onTreeChanged: providerModel.tree = tree
 
-        model: filterModel
+    function playSelected() {
+        providerModel.addAndPlay(filterModel.mapIndexesToSource(selectionModel.selectedIndexes))
     }
 
-    SortFilterProxyModel {
-        id: filterModel
+    function playAt(index) {
+        providerModel.addAndPlay(filterModel.mapIndexToSource(index))
+    }
 
-        sourceModel: providerModel
-        searchRole: "name"
+    function _actionAtIndex(index) {
+        if ( selectionModel.selectedIndexes.length > 1 ) {
+            playSelected()
+        } else {
+            var data = filterModel.getDataAt(index)
+            if (data.type === NetworkMediaModel.TYPE_DIRECTORY
+                    || data.type === NetworkMediaModel.TYPE_NODE)  {
+                browse(data.tree, Qt.TabFocusReason)
+            } else {
+                playAt(index)
+            }
+        }
     }
 
     Widgets.DragItem {
@@ -125,32 +136,6 @@ FocusScope {
         }
     }
 
-    function resetFocus() {
-        var initialIndex = root.initialIndex
-        if (initialIndex >= filterModel.count)
-            initialIndex = 0
-        selectionModel.select(filterModel.index(initialIndex, 0), ItemSelectionModel.ClearAndSelect)
-        if (_currentView) {
-            _currentView.currentIndex = initialIndex
-            _currentView.positionViewAtIndex(initialIndex, ItemView.Contain)
-        }
-    }
-
-
-    function _actionAtIndex(index) {
-        if ( selectionModel.selectedIndexes.length > 1 ) {
-            playSelected()
-        } else {
-            var data = filterModel.getDataAt(index)
-            if (data.type === NetworkMediaModel.TYPE_DIRECTORY
-                    || data.type === NetworkMediaModel.TYPE_NODE)  {
-                browse(data.tree, Qt.TabFocusReason)
-            } else {
-                playAt(index)
-            }
-        }
-    }
-
     Component{
         id: gridComponent
 
@@ -160,49 +145,19 @@ FocusScope {
             selectionDelegateModel: selectionModel
             model: filterModel
 
-            headerDelegate: FocusScope {
-                id: headerId
+            headerDelegate: BrowseTreeHeader {
+                providerModel: root.providerModel
 
-                width: view.width
-                height: layout.implicitHeight + VLCStyle.margin_large + VLCStyle.margin_normal
+                // align header content with grid content
+                leftPadding: gridView.rowX
+
+                width: gridView.width
 
-                Navigation.navigable: btn.visible
                 Navigation.parentItem: root
-                Navigation.downAction: function() {
+                Navigation.downAction: function () {
                     focus = false
                     gridView.forceActiveFocus(Qt.TabFocusReason)
                 }
-
-                RowLayout {
-                    id: layout
-
-                    anchors.fill: parent
-                    anchors.topMargin: VLCStyle.margin_large
-                    anchors.bottomMargin: VLCStyle.margin_normal
-                    anchors.rightMargin: VLCStyle.margin_small
-
-                    Widgets.SubtitleLabel {
-                        text: providerModel.name
-                        leftPadding: gridView.rowX
-                        color: gridView.colorContext.fg.primary
-
-                        Layout.fillWidth: true
-                    }
-
-                    Widgets.ButtonExt {
-                        id: btn
-
-                        focus: true
-                        iconTxt: providerModel.indexed ? VLCIcons.remove : VLCIcons.add
-                        text:  providerModel.indexed ?  I18n.qtr("Remove from medialibrary") : I18n.qtr("Add to medialibrary")
-                        visible: !providerModel.is_on_provider_list && !!providerModel.canBeIndexed
-                        onClicked: providerModel.indexed = !providerModel.indexed
-
-                        Layout.preferredWidth: implicitWidth
-
-                        Navigation.parentItem: headerId
-                    }
-                }
             }
 
             cellWidth: VLCStyle.gridItem_network_width
@@ -309,8 +264,6 @@ FocusScope {
             }]
 
             dragItem: networkDragItem
-            height: view.height
-            width: view.width
 
             model: filterModel
 
@@ -325,48 +278,15 @@ FocusScope {
 
             rowHeight: VLCStyle.tableCoverRow_height
 
-            header: FocusScope {
-                id: head
+            header: BrowseTreeHeader {
+                providerModel: root.providerModel
 
-                width: view.width
-                height: layout.implicitHeight + VLCStyle.margin_large + VLCStyle.margin_small
+                width: tableView.width
 
-                Navigation.navigable: btn.visible
                 Navigation.parentItem: root
-
-                RowLayout {
-                    id: layout
-
-                    anchors.fill: parent
-                    anchors.topMargin: VLCStyle.margin_large
-                    anchors.bottomMargin: VLCStyle.margin_small
-                    anchors.rightMargin: VLCStyle.margin_small
-
-                    Widgets.SubtitleLabel {
-                        text: providerModel.name
-                        leftPadding: VLCStyle.margin_large
-                        color: tableView.colorContext.fg.primary
-
-                        Layout.fillWidth: true
-                    }
-
-                    Widgets.ButtonExt {
-                        id: btn
-
-                        focus: true
-                        iconTxt: providerModel.indexed ? VLCIcons.remove : VLCIcons.add
-                        text:  providerModel.indexed ?  I18n.qtr("Remove from medialibrary") : I18n.qtr("Add to medialibrary")
-                        visible: !providerModel.is_on_provider_list && !!providerModel.canBeIndexed
-                        onClicked: providerModel.indexed = !providerModel.indexed
-
-                        Navigation.parentItem: root
-                        Navigation.downAction: function() {
-                            head.focus = false
-                            tableView.forceActiveFocus(Qt.TabFocusReason)
-                        }
-
-                        Layout.preferredWidth: implicitWidth
-                    }
+                Navigation.downAction: function () {
+                    focus = false
+                    tableView.forceActiveFocus(Qt.TabFocusReason)
                 }
             }
 
@@ -377,28 +297,96 @@ FocusScope {
         }
     }
 
-    Widgets.StackViewExt {
-        id: view
+    Component {
+        id: emptyLabelComponent
 
-        anchors.fill: parent
+        FocusScope {
+            id: focusScope
 
-        focus: true
-        initialItem: MainCtx.gridView ? gridComponent : tableComponent
+            Navigation.navigable: layout.Navigation.navigable || (emptyLabel.visible && emptyLabel.button.enabled)
 
-        Connections {
-            target: MainCtx
-            onGridViewChanged: {
-                if (MainCtx.gridView)
-                    view.replace(gridComponent)
+            // used by MainDisplay to transfer focus
+            function setCurrentItemFocus(reason) {
+                if (!focusScope.Navigation.navigable)
+                    return
+
+                if (header.Navigation.navigable)
+                    header.forceActiveFocus(reason)
                 else
-                    view.replace(tableComponent)
+                    emptyLabel.forceActiveFocus(reason)
             }
-        }
 
-        Widgets.BusyIndicatorExt {
-            runningDelayed: Helpers.get(providerModel, "parsingPending", false) // 'parsingPending' property is not available with NetworkDevicesModel
-            anchors.centerIn: parent
-            z: 1
+            ColumnLayout {
+                id: layout
+
+                anchors.fill: parent
+
+                BrowseTreeHeader {
+                    id: header
+
+                    focus: true
+
+                    providerModel: root.providerModel
+
+                    Layout.fillWidth: true
+
+                    Navigation.parentItem: root
+                    Navigation.downItem: emptyLabel
+                }
+
+                Widgets.EmptyLabelButton {
+                    id: emptyLabel
+
+                    visible: !root.parsing
+
+                    // FIXME: find better cover
+                    cover: VLCStyle.noArtVideoCover
+                    coverWidth : VLCStyle.dp(182, VLCStyle.scale)
+                    coverHeight: VLCStyle.dp(114, VLCStyle.scale)
+
+                    text: I18n.qtr("Nothing to see here, go back.")
+
+                    button.iconTxt: VLCIcons.back
+                    button.text: I18n.qtr("Back")
+                    button.enabled: !History.previousEmpty
+                    button.width: button.implicitWidth
+
+                    function onNavigate() {
+                        History.previous()
+                    }
+
+                    Layout.fillHeight: true
+                    Layout.fillWidth: true
+
+                    Navigation.parentItem: root
+                    Navigation.upAction: function () {
+                        // FIXME: for some reason default navigation flow doesn't work
+                        // i.e setting Navigtaion.upItem doesn't fallthrough to parent's
+                        // action if Navigtaion.upItem.Navigtaion.navigble is false
+
+                        if (header.Navigation.navigable)
+                            header.forceActiveFocus(Qt.TabFocusReason)
+                        else
+                            return false // fallthrough default action
+                    }
+                }
+
+                Item {
+                    visible: root.parsing
+
+                    Layout.fillHeight: true
+                    Layout.fillWidth: true
+
+                    Widgets.BusyIndicatorExt {
+                        id: busyIndicator
+
+                        runningDelayed: root.parsing
+                        anchors.centerIn: parent
+                        z: 1
+                    }
+                }
+            }
         }
+
     }
 }


=====================================
modules/gui/qt/network/qml/BrowseTreeHeader.qml
=====================================
@@ -0,0 +1,94 @@
+
+/*****************************************************************************
+ * Copyright (C) 2023 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+import QtQuick 2.11
+import QtQuick.Layouts 1.11
+
+import org.videolan.vlc 0.1
+
+import "qrc:///util/" as Util
+import "qrc:///util/Helpers.js" as Helpers
+import "qrc:///widgets/" as Widgets
+import "qrc:///style/"
+
+FocusScope {
+    id: root
+
+    // Network* model
+    /* required */ property var providerModel
+
+    readonly property ColorContext colorContext: ColorContext {
+        id: theme
+
+        colorSet: ColorContext.View
+    }
+
+    property int leftPadding: VLCStyle.margin_large
+    property int rightPadding: VLCStyle.margin_small
+
+    property int topPadding: VLCStyle.margin_large
+    property int bottomPadding: VLCStyle.margin_normal
+
+    height: implicitHeight
+    implicitHeight: layout.implicitHeight + topPadding + bottomPadding
+
+    focus: medialibraryBtn.visible
+    Navigation.navigable: medialibraryBtn.visible
+
+    RowLayout {
+        id: layout
+
+        anchors {
+            fill: parent
+
+            leftMargin: root.leftPadding
+            rightMargin: root.rightPadding
+
+            topMargin: root.topPadding
+            bottomMargin: root.bottomPadding
+        }
+
+        Widgets.SubtitleLabel {
+            text: providerModel.name
+            color: colorContext.fg.primary
+
+            Layout.fillWidth: true
+        }
+
+        Widgets.ButtonExt {
+            id: medialibraryBtn
+
+            focus: true
+
+            iconTxt: providerModel.indexed ? VLCIcons.remove : VLCIcons.add
+
+            text: providerModel.indexed
+                  ? I18n.qtr("Remove from medialibrary")
+                  : I18n.qtr("Add to medialibrary")
+
+            visible: !providerModel.is_on_provider_list
+                     && !!providerModel.canBeIndexed
+
+            onClicked: providerModel.indexed = !providerModel.indexed
+
+            Layout.preferredWidth: implicitWidth
+
+            Navigation.parentItem: root
+        }
+    }
+}


=====================================
modules/gui/qt/vlc.qrc
=====================================
@@ -153,6 +153,9 @@
         <file alias="MainViewLoader.qml">maininterface/qml/MainViewLoader.qml</file>
     </qresource>
     <qresource prefix="/widgets">
+        <file alias="EmptyLabel.qml">widgets/qml/EmptyLabel.qml</file>
+        <file alias="EmptyLabelButton.qml">widgets/qml/EmptyLabelButton.qml</file>
+        <file alias="EmptyLabelHint.qml">widgets/qml/EmptyLabelHint.qml</file>
         <file alias="ActionButtonOverlay.qml">widgets/qml/ActionButtonOverlay.qml</file>
         <file alias="ActionButtonPrimary.qml">widgets/qml/ActionButtonPrimary.qml</file>
         <file alias="BannerCone.qml">widgets/qml/BannerCone.qml</file>
@@ -231,6 +234,7 @@
         <file alias="BrowseDisplay.qml">network/qml/BrowseDisplay.qml</file>
         <file alias="BrowseHomeDisplay.qml">network/qml/BrowseHomeDisplay.qml</file>
         <file alias="BrowseTreeDisplay.qml">network/qml/BrowseTreeDisplay.qml</file>
+        <file alias="BrowseTreeHeader.qml">network/qml/BrowseTreeHeader.qml</file>
         <file alias="DiscoverDisplay.qml">network/qml/DiscoverDisplay.qml</file>
         <file alias="DiscoverUrlDisplay.qml">network/qml/DiscoverUrlDisplay.qml</file>
         <file alias="NetworkCustomCover.qml">network/qml/NetworkCustomCover.qml</file>
@@ -242,9 +246,6 @@
         <file alias="ServicesSources.qml">network/qml/ServicesSources.qml</file>
     </qresource>
     <qresource prefix="/medialibrary">
-        <file alias="EmptyLabel.qml">medialibrary/qml/EmptyLabel.qml</file>
-        <file alias="EmptyLabelButton.qml">medialibrary/qml/EmptyLabelButton.qml</file>
-        <file alias="EmptyLabelHint.qml">medialibrary/qml/EmptyLabelHint.qml</file>
         <file alias="MediaGroupDisplay.qml">medialibrary/qml/MediaGroupDisplay.qml</file>
         <file alias="MusicAlbums.qml">medialibrary/qml/MusicAlbums.qml</file>
         <file alias="MusicDisplay.qml">medialibrary/qml/MusicDisplay.qml</file>


=====================================
modules/gui/qt/medialibrary/qml/EmptyLabel.qml → modules/gui/qt/widgets/qml/EmptyLabel.qml
=====================================


=====================================
modules/gui/qt/medialibrary/qml/EmptyLabelButton.qml → modules/gui/qt/widgets/qml/EmptyLabelButton.qml
=====================================
@@ -25,6 +25,8 @@ import "qrc:///style/"
 import "qrc:///widgets/" as Widgets
 
 EmptyLabel {
+    id: root
+
     // Properties
 
     property bool _keyPressed: false


=====================================
modules/gui/qt/medialibrary/qml/EmptyLabelHint.qml → modules/gui/qt/widgets/qml/EmptyLabelHint.qml
=====================================


=====================================
po/POTFILES.in
=====================================
@@ -767,6 +767,8 @@ modules/gui/qt/maininterface/qml/BannerSources.qml
 modules/gui/qt/maininterface/qml/MainDisplay.qml
 modules/gui/qt/maininterface/qml/MainInterface.qml
 modules/gui/qt/maininterface/qml/NoMedialibHome.qml
+modules/gui/qt/widgets/qml/EmptyLabelButton.qml
+modules/gui/qt/widgets/qml/EmptyLabel.qml
 modules/gui/qt/medialibrary/mlbookmarkmodel.cpp
 modules/gui/qt/medialibrary/mlbookmarkmodel.hpp
 modules/gui/qt/medialibrary/mlfolder.cpp
@@ -787,7 +789,6 @@ modules/gui/qt/medialibrary/mlvideogroupsmodel.cpp
 modules/gui/qt/medialibrary/mlvideogroupsmodel.hpp
 modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
 modules/gui/qt/medialibrary/qml/AudioGridItem.qml
-modules/gui/qt/medialibrary/qml/EmptyLabelButton.qml
 modules/gui/qt/medialibrary/qml/MediaGroupDisplay.qml
 modules/gui/qt/medialibrary/qml/MusicAlbums.qml
 modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
@@ -830,6 +831,7 @@ modules/gui/qt/network/qml/BrowseDeviceView.qml
 modules/gui/qt/network/qml/BrowseDisplay.qml
 modules/gui/qt/network/qml/BrowseHomeDisplay.qml
 modules/gui/qt/network/qml/BrowseTreeDisplay.qml
+modules/gui/qt/network/qml/BrowseTreeHeader.qml
 modules/gui/qt/network/qml/DiscoverDisplay.qml
 modules/gui/qt/network/qml/DiscoverUrlDisplay.qml
 modules/gui/qt/network/qml/NetworkGridItem.qml



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/aa5690bcd90387ec0d295700d73d603fb2737a9b...44c3da73667169e04e4c8a01fc27bee589caf6d7

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/aa5690bcd90387ec0d295700d73d603fb2737a9b...44c3da73667169e04e4c8a01fc27bee589caf6d7
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list