┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index d18387f51..46176638e 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -957,15 +957,17 @@ void KFileItemModelRolesUpdater::updateChangedItems()
visibleChangedIndexes.reserve(m_changedItems.size());
invisibleChangedIndexes.reserve(m_changedItems.size());
- // Iterate over a const copy because items are deleted within the loop
- const auto changedItems = m_changedItems;
- for (const KFileItem &item : changedItems) {
+ auto oldsize = m_changedItems.size();
+ auto changedItemsIt = m_changedItems.begin();
+ while (changedItemsIt != m_changedItems.end()) {
+ const auto& item = *changedItemsIt;
const int index = m_model->index(item);
if (index < 0) {
- m_changedItems.remove(item);
+ changedItemsIt = m_changedItems.erase(changedItemsIt);
continue;
}
+ ++changedItemsIt;
if (index >= m_firstVisibleIndex && index <= m_lastVisibleIndex) {
visibleChangedIndexes.append(index);