From fe12285fa6378fff640599043a7f187e09feb988 Mon Sep 17 00:00:00 2001 From: Prince Gupta Date: Thu, 22 Jul 2021 21:13:34 +0530 Subject: [PATCH] qml: implement drag support in MusicTrackListDisplay replaces drag support from MusicTracksDisplay. This way it can be reused in places where MusicTrackListDisplay is used like in expand delegates --- .../qml/MusicTrackListDisplay.qml | 20 ++++++++++++++++ .../medialibrary/qml/MusicTracksDisplay.qml | 24 ++----------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml index 4a3dedb086..ad320a8f33 100644 --- a/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml +++ b/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml @@ -71,6 +71,26 @@ Widgets.KeyNavigableTableView { onContextMenuButtonClicked: contextMenu.popup(selectionModel.selectedIndexes, menuParent.mapToGlobal(0,0)) onRightClick: contextMenu.popup(selectionModel.selectedIndexes, globalMousePos) + dragItem: Widgets.DragItem { + + 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 getSelectedInputItem() { + return model.getItemsForIndexes(selectionModel.selectedIndexes); + } + + } Widgets.TableColumns { id: tableColumns diff --git a/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml index 35ca591e49..8cb808928c 100644 --- a/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml +++ b/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml @@ -26,38 +26,18 @@ import "qrc:///main/" as MainInterface FocusScope { id: root + property alias sortModel: tracklistdisplay_id.sortModel property alias model: tracklistdisplay_id.model property alias selectionModel: tracklistdisplay_id.selectionDelegateModel readonly property bool isViewMultiView: false - 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 getSelectedInputItem() { - return model.getItemsForIndexes(selectionModel.selectedIndexes); - } - } - MusicTrackListDisplay { id: tracklistdisplay_id + anchors.fill: parent visible: model.count > 0 focus: model.count > 0 - dragItem: trackDragItem headerTopPadding: VLCStyle.margin_normal Navigation.parentItem: root Navigation.cancelAction: function() {