┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index 7874d3025..0d6f60336 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -732,6 +732,8 @@ void KFileItemModel::resortAllItems()
return;
}
+ const KFileItemList oldSortedItems = m_sortedItems;
+
KFileItemList sortedItems = m_sortedItems;
m_sortedItems.clear();
m_items.clear();
@@ -748,12 +750,28 @@ void KFileItemModel::resortAllItems()
++index;
}
+ bool emitItemsMoved = false;
+ QList<int> movedToIndexes;
+ movedToIndexes.reserve(sortedItems.count());
+ for (int i = 0; i < itemCount; i++) {
+ const int newIndex = m_items.value(oldSortedItems.at(i).url());
+ movedToIndexes.append(newIndex);
+ if (!emitItemsMoved && newIndex != i) {
+ emitItemsMoved = true;
+ }
+ }
+
+ if (emitItemsMoved) {
+ // TODO:
+ // * Implement KItemListView::slotItemsMoved() (which should call KItemListSelectionManager::itemsMoved())
+ // * Do not emit itemsRemoved()/itemsInserted() here.
+ emit itemsMoved(KItemRange(0, itemCount), movedToIndexes);
+ }
emit itemsInserted(KItemRangeList() << KItemRange(0, itemCount));
}
void KFileItemModel::removeExpandedItems()
{
-
KFileItemList expandedItems;
const int maxIndex = m_data.count() - 1;