diff options
| author | Stefan Brüns <[email protected]> | 2021-02-15 11:25:28 +0100 |
|---|---|---|
| committer | Stefan Brüns <[email protected]> | 2021-02-15 17:24:15 +0100 |
| commit | 68704c2a28eed5a066d76ed880dc1971b6afab04 (patch) | |
| tree | fd4e2b390af1d2d00595fb7bf365413920f2b809 /src | |
| parent | b4676b71c695a546de623d6da592e9fc50b7265f (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')
| -rw-r--r-- | src/kitemviews/kfileitemmodelrolesupdater.cpp | 4 |
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) { |
