From 68704c2a28eed5a066d76ed880dc1971b6afab04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Mon, 15 Feb 2021 11:25:28 +0100 Subject: [PATCH] [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. --- src/kitemviews/kfileitemmodelrolesupdater.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 88a732f8de..0554bff60e 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -1160,7 +1160,9 @@ QList KFileItemModelRolesUpdater::indexesToResolve() const const int count = m_model->count(); QList 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) {