From: Tigran Gabrielyan Date: Wed, 20 Mar 2019 09:21:21 +0000 (+0100) Subject: Fix rearranging items in places panel with hidden items X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/303cd17444e1fb88d1f92a911f7c770214b8f90e Fix rearranging items in places panel with hidden items 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 --- diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp index 7513a25d5..e8636942b 100644 --- a/src/panels/places/placesitemmodel.cpp +++ b/src/panels/places/placesitemmodel.cpp @@ -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 urls = KUrlMimeData::urlsFromMimeData(mimeData);