]> cloud.milkyroute.net Git - dolphin.git/commitdiff
KFileItemModelRolesUpdater: Generate thumbnails for visible files first
authorKai Uwe Broulik <kde@privat.broulik.de>
Tue, 16 Nov 2021 19:35:05 +0000 (20:35 +0100)
committerKai Uwe Broulik <kde@privat.broulik.de>
Tue, 23 Nov 2021 15:52:59 +0000 (16:52 +0100)
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

index 978f5df6e0b35abee929ad86be36019557e44100..3804a19074a19dd042543413e5cda0befac2de43 100644 (file)
@@ -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.