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
This commit is contained in:
Tigran Gabrielyan 2019-03-20 10:21:21 +01:00 committed by Nate Graham
parent 5b463d82fe
commit 303cd17444

View 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);