From cdb4a7909d256b1565383884f271214d4796cdbb Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Tue, 16 Nov 2021 20:35:05 +0100 Subject: [PATCH] KFileItemModelRolesUpdater: Generate thumbnails for visible files first Folder thumbnails are not cached as we cannot know whether something inside a folder changed. Moreover, they are also a collage of several files and might even traverse into subdirectories. This takes time. --- src/kitemviews/kfileitemmodelrolesupdater.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 978f5df6e..3804a1907 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -1405,10 +1405,19 @@ QList KFileItemModelRolesUpdater::indexesToResolve() const (2 * m_maximumVisibleItems))); // Add visible items. + // Resolve files first, their previews are quicker. + QList visibleDirs; for (int i = m_firstVisibleIndex; i <= m_lastVisibleIndex; ++i) { - result.append(i); + const KFileItem item = m_model->fileItem(i); + if (item.isDir()) { + visibleDirs.append(i); + } else { + result.append(i); + } } + result.append(visibleDirs); + // We need a reasonable upper limit for number of items to resolve after // and before the visible range. m_maximumVisibleItems can be quite large // when using Compact View.