[vlc-commits] qml: add Network Drive and File Grid Items

Abel Tesfaye git at videolan.org
Wed Aug 21 15:08:41 CEST 2019


vlc | branch: master | Abel Tesfaye <Abeltesfaye45 at gmail.com> | Mon Aug 12 12:43:07 2019 +0300| [d62454278637067a2f02f416f096b2705efe5504] | committer: Jean-Baptiste Kempf

qml: add Network Drive and File Grid Items

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d62454278637067a2f02f416f096b2705efe5504
---

 modules/gui/qt/Makefile.am                         |  2 +
 .../qt/qml/mediacenter/NetworkDriveDisplayGrid.qml | 60 +++++++++++++++++++++
 .../qt/qml/mediacenter/NetworkFileDisplayGrid.qml  | 63 ++++++++++++++++++++++
 modules/gui/qt/qml/style/VLCStyle.qml              |  2 +
 modules/gui/qt/vlc.qrc                             |  2 +
 5 files changed, 129 insertions(+)

diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index db818d4519..d61af2993f 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -620,6 +620,8 @@ libqt_plugin_la_QML = \
 	gui/qt/qml/mediacenter/MusicTrackListDisplay.qml \
 	gui/qt/qml/mediacenter/NetworkDriveDisplay.qml \
 	gui/qt/qml/mediacenter/NetworkFileDisplay.qml \
+	gui/qt/qml/mediacenter/NetworkFileDisplayGrid.qml \
+	gui/qt/qml/mediacenter/NetworkDriveDisplayGrid.qml \
 	gui/qt/qml/mediacenter/NetworkListItem.qml \
 	gui/qt/qml/mediacenter/VideoExpandableGrid.qml \
 	gui/qt/qml/playlist/PlaylistListView.qml \
diff --git a/modules/gui/qt/qml/mediacenter/NetworkDriveDisplayGrid.qml b/modules/gui/qt/qml/mediacenter/NetworkDriveDisplayGrid.qml
new file mode 100644
index 0000000000..807cc7daa4
--- /dev/null
+++ b/modules/gui/qt/qml/mediacenter/NetworkDriveDisplayGrid.qml
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (C) 2019 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.Controls 2.4
+import QtQml.Models 2.2
+
+import org.videolan.vlc 0.1
+import org.videolan.medialib 0.1
+
+import "qrc:///utils/" as Utils
+import "qrc:///style/"
+
+Utils.GridItem {
+    id: item
+
+    pictureWidth: VLCStyle.network_normal
+    pictureHeight: VLCStyle.network_normal
+    image: "qrc:///type/directory_black.svg"
+    subtitle: model.mrl
+    title: model.name || qsTr("Unknown share")
+    focus: true
+    selected: parent.activeFocus && element.DelegateModel.inSelected
+    shiftX: view.currentItem.shiftX(model.index)
+    onItemClicked : {
+        if (key == Qt.RightButton){
+            contextMenu.model = model
+            contextMenu.popup(menuParent)
+        }
+        delegateModel.updateSelection( modifier ,  view.currentIndex, index)
+        view.currentItem.currentIndex = index
+        item.forceActiveFocus()
+    }
+    noActionButtons: true
+    showContextButton: true
+    
+    onAddToPlaylistClicked: model.indexed = !model.indexed
+    onContextMenuButtonClicked: {
+        contextMenu.model = model
+        contextMenu.popup(menuParent)
+    }
+
+    onItemDoubleClicked: {
+        history.push( ["mc", "network", { tree: model.tree } ], History.Go)
+    }
+}
diff --git a/modules/gui/qt/qml/mediacenter/NetworkFileDisplayGrid.qml b/modules/gui/qt/qml/mediacenter/NetworkFileDisplayGrid.qml
new file mode 100644
index 0000000000..6c19bda892
--- /dev/null
+++ b/modules/gui/qt/qml/mediacenter/NetworkFileDisplayGrid.qml
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (C) 2019 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.Controls 2.4
+import QtQml.Models 2.2
+
+import org.videolan.medialib 0.1
+
+import "qrc:///utils/" as Utils
+import "qrc:///style/"
+
+Utils.GridItem {
+    id: item
+
+    pictureWidth: VLCStyle.network_normal
+    pictureHeight: VLCStyle.network_normal
+    image: "qrc:///type/file_black.svg"
+    subtitle: model.name || qsTr("Unknown share")
+    title: model.mrl
+    focus: true
+
+    selected: element.DelegateModel.inSelected
+    shiftX: view.currentItem.shiftX(model.index)
+    onItemClicked : {
+        if (key == Qt.RightButton){
+            contextMenu.model = model
+            contextMenu.popup(menuParent)
+        }
+        delegateModel.updateSelection( modifier , view.currentIndex, index)
+        view.currentItem.currentIndex = index
+        item.forceActiveFocus()
+    }
+    showContextButton: true
+
+    onItemDoubleClicked: {
+        medialib.addAndPlay( model.mrl )
+    }
+    onPlayClicked: {
+        medialib.addAndPlay( model.mrl )
+    }
+    onAddToPlaylistClicked: {
+        medialib.addToPlaylist( model.mrl );
+    }
+    onContextMenuButtonClicked: {
+        contextMenu.model = model
+        contextMenu.popup(menuParent)
+    }
+}
diff --git a/modules/gui/qt/qml/style/VLCStyle.qml b/modules/gui/qt/qml/style/VLCStyle.qml
index 2aeaa3ff4d..f21edc5477 100644
--- a/modules/gui/qt/qml/style/VLCStyle.qml
+++ b/modules/gui/qt/qml/style/VLCStyle.qml
@@ -109,6 +109,8 @@ Item {
     property real video_large_width: video_large_height * (16/10);
     property real video_small_width: video_small_height * (16/10);
 
+    property real network_normal: 100 * scale;
+
     property int miniPlayerHeight: 60 * scale;
 
     //combobox
diff --git a/modules/gui/qt/vlc.qrc b/modules/gui/qt/vlc.qrc
index c425aa6a27..778c0159ad 100644
--- a/modules/gui/qt/vlc.qrc
+++ b/modules/gui/qt/vlc.qrc
@@ -222,6 +222,8 @@
         <file alias="NetworkListItem.qml">qml/mediacenter/NetworkListItem.qml</file>
         <file alias="VideoExpandableGrid.qml">qml/mediacenter/VideoExpandableGrid.qml</file>
         <file alias="MCVideoListDisplay.qml">qml/mediacenter/MCVideoListDisplay.qml</file>
+        <file alias="NetworkFileDisplayGrid.qml">qml/mediacenter/NetworkFileDisplayGrid.qml</file>
+        <file alias="NetworkDriveDisplayGrid.qml">qml/mediacenter/NetworkDriveDisplayGrid.qml</file>
     </qresource>
     <qresource prefix="/style">
         <file alias="qmldir">qml/style/qmldir</file>



More information about the vlc-commits mailing list