diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -44,6 +44,7 @@ #include #include +#include // #define KFILEITEMMODELROLESUPDATER_DEBUG @@ -901,6 +902,12 @@ } while (!m_pendingPreviewItems.isEmpty() && timer.elapsed() < MaxBlockTimeout); } + // Generate file previews first as folder thumbnails typically take a lot longer + // as it may traverse subdirs and they're also a lot smaller and less prominent + std::stable_partition(itemSubSet.begin(), itemSubSet.end(), [](const KFileItem &item) { + return !item.isDir(); + }); + KIO::PreviewJob* job = new KIO::PreviewJob(itemSubSet, cacheSize, &m_enabledPlugins); job->setIgnoreMaximumSize(itemSubSet.first().isLocalFile());