]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix rearranging items in places panel with hidden items
authorTigran Gabrielyan <tigrangab@gmail.com>
Wed, 20 Mar 2019 09:21:21 +0000 (10:21 +0100)
committerNate Graham <nate@kde.org>
Wed, 20 Mar 2019 16:46:15 +0000 (17:46 +0100)
Summary:
`m_sourceModel->movePlace` is called using index from the view model.
This becomes an issue when there are hidden places items.

This change calls `m_sourceModel->movePlace` using the corresponding mapped source index.

BUG: 399430
FIXED-IN: 19.04.0

Test Plan:
  # Create at least 4 Places items
  # Hide first item
  # Drag the now first visible item between second and third item

Actual: The item does not move
Expected: The first visible item should now be second visible item in the list

Reviewers: #dolphin, ngraham

Reviewed By: #dolphin, ngraham

Subscribers: ngraham, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D19901

src/panels/places/placesitemmodel.cpp

index 7513a25d522309db65de2a823f7777a3f386012a..e8636942b83ac645e7309a9808379ae448ca1cf6 100644 (file)
@@ -353,7 +353,10 @@ void PlacesItemModel::dropMimeDataBefore(int index, const QMimeData* mimeData)
         int oldIndex;
         stream >> oldIndex;
 
-        m_sourceModel->movePlace(oldIndex, index);
+        QModelIndex sourceIndex = mapToSource(index);
+        QModelIndex oldSourceIndex = mapToSource(oldIndex);
+
+        m_sourceModel->movePlace(oldSourceIndex.row(), sourceIndex.row());
     } else if (mimeData->hasFormat(QStringLiteral("text/uri-list"))) {
         // One or more items must be added to the model
         const QList<QUrl> urls = KUrlMimeData::urlsFromMimeData(mimeData);