┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodelrolesupdater.cpp
diff options
context:
space:
mode:
authorKai Uwe Broulik <[email protected]>2021-11-16 20:35:05 +0100
committerKai Uwe Broulik <[email protected]>2021-11-23 16:52:59 +0100
commitcdb4a7909d256b1565383884f271214d4796cdbb (patch)
treef1291c92f173bd748efb8d92e194eb101efab06e /src/kitemviews/kfileitemmodelrolesupdater.cpp
parentcaa639fb44a798379d273f26fd13f8de1daf3350 (diff)
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.
Diffstat (limited to 'src/kitemviews/kfileitemmodelrolesupdater.cpp')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp11
1 files changed, 10 insertions, 1 deletions
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<int> KFileItemModelRolesUpdater::indexesToResolve() const
(2 * m_maximumVisibleItems)));
// Add visible items.
+ // Resolve files first, their previews are quicker.
+ QList<int> 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.