[vlc-commits] qml: add drag and drop support in MusicTracksDisplay

Prince Gupta git at videolan.org
Thu Dec 10 09:34:58 UTC 2020


vlc | branch: master | Prince Gupta <guptaprince8832 at gmail.com> | Fri Nov 13 15:13:46 2020 +0530| [9c9139fc0018affac87b5578b4a0e22c082d7dd3] | committer: Pierre Lamot

qml: add drag and drop support in MusicTracksDisplay

Signed-off-by: Pierre Lamot <pierre at videolabs.io>

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

 .../gui/qt/medialibrary/qml/MusicTracksDisplay.qml | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
index 6a96b364ab..60eea56383 100644
--- a/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
@@ -26,12 +26,35 @@ Widgets.NavigableFocusScope {
     id: root
     property alias sortModel: tracklistdisplay_id.sortModel
     property alias model: tracklistdisplay_id.model
+    property alias selectionModel: tracklistdisplay_id.selectionDelegateModel
+
+    Widgets.DragItem {
+        id: trackDragItem
+
+        function updateComponents(maxCovers) {
+          var items = selectionModel.selectedIndexes.slice(0, maxCovers).map(function (x){
+            return model.getDataAt(x.row)
+          })
+          var title = items.map(function (item){ return item.title}).join(", ")
+          var covers = items.map(function (item) { return {artwork: item.cover || VLCStyle.noArtCover}})
+          return {
+            covers: covers,
+            title: title,
+            count: selectionModel.selectedIndexes.length
+          }
+        }
+
+        function insertIntoPlaylist(index) {
+            medialib.insertIntoPlaylist(index, model.getIdsForIndexes(selectionModel.selectedIndexes))
+        }
+    }
 
     MusicTrackListDisplay {
         id: tracklistdisplay_id
         anchors.fill: parent
         visible: model.count > 0
         focus: visible
+        dragItem: trackDragItem
         navigationParent: root
         navigationCancel: function() {
             if (tracklistdisplay_id.currentIndex <= 0)



More information about the vlc-commits mailing list