┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
authorStefan Brüns <[email protected]>2021-02-15 11:25:28 +0100
committerStefan Brüns <[email protected]>2021-02-15 17:24:15 +0100
commit68704c2a28eed5a066d76ed880dc1971b6afab04 (patch)
treefd4e2b390af1d2d00595fb7bf365413920f2b809 /src/kitemviews
parentb4676b71c695a546de623d6da592e9fc50b7265f (diff)
[FileItemRolesUpdater] Fix reservation size
The code below always adds the visible range, up to 5 pages before and after the visible range (each capped to ResolveAllItemsLimit/2) and the very first and last page (each up to m_maximumVisibleItems). Use this number to avoid growing the list later.
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index 88a732f8d..0554bff60 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -1160,7 +1160,9 @@ QList<int> KFileItemModelRolesUpdater::indexesToResolve() const
const int count = m_model->count();
QList<int> result;
- result.reserve(ResolveAllItemsLimit);
+ result.reserve(qMin(count, (m_lastVisibleIndex - m_firstVisibleIndex + 1) +
+ ResolveAllItemsLimit +
+ (2 * m_maximumVisibleItems)));
// Add visible items.
for (int i = m_firstVisibleIndex; i <= m_lastVisibleIndex; ++i) {