┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index ab39e55e5..1062aa5ea 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -1064,6 +1064,10 @@ void KFileItemModel::removeItems(const KFileItemList& items)
}
}
+ if (indexesToRemove.isEmpty()) {
+ return;
+ }
+
std::sort(indexesToRemove.begin(), indexesToRemove.end());
// Step 2: Remove the ItemData pointers from the list m_itemData.
@@ -1074,14 +1078,15 @@ void KFileItemModel::removeItems(const KFileItemList& items)
const int oldItemDataCount = m_itemData.count();
while (source < oldItemDataCount) {
- if (nextRange < itemRanges.count() - 1 && source == itemRanges.at(nextRange).index) {
+ m_itemData[target] = m_itemData[source];
+ ++target;
+ ++source;
+
+ if (nextRange < itemRanges.count() && source == itemRanges.at(nextRange).index) {
// Skip the items in the next removed range.
source += itemRanges.at(nextRange).count;
++nextRange;
}
- m_itemData[target] = m_itemData[source];
- ++target;
- ++source;
}
m_itemData.erase(m_itemData.end() - indexesToRemove.count(), m_itemData.end());