From 47e4c64e6ac5fab00221febf2cbb4f2851c40684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9ven=20Car?= Date: Tue, 25 Apr 2023 16:09:05 +0200 Subject: [PATCH] KFileItemModelRolesUpdater: test isSlow in `startDirectorySizeCounting` NO_CHANGELOG --- src/kitemviews/kfileitemmodelrolesupdater.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 1a849dcd5..e0e61cd49 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -1214,8 +1214,9 @@ void KFileItemModelRolesUpdater::applySortRole(int index) } data.insert("type", item.mimeComment()); - } else if (m_model->sortRole() == "size" && item.isLocalFile() && !item.isSlow() && item.isDir()) { + } else if (m_model->sortRole() == "size" && item.isLocalFile() && item.isDir()) { startDirectorySizeCounting(item, index); + return; } else { // Probably the sort role is a baloo role - just determine all roles. data = rolesData(item, index); @@ -1277,6 +1278,10 @@ bool KFileItemModelRolesUpdater::applyResolvedRoles(int index, ResolveHint hint) void KFileItemModelRolesUpdater::startDirectorySizeCounting(const KFileItem &item, int index) { + if (item.isSlow()) { + return; + } + // Tell m_directoryContentsCounter that we want to count the items // inside the directory. The result will be received in slotDirectoryContentsCountReceived. if (m_scanDirectories && item.isLocalFile()) { @@ -1294,7 +1299,7 @@ QHash KFileItemModelRolesUpdater::rolesData(const KFileIte const bool getSizeRole = m_roles.contains("size"); const bool getIsExpandableRole = m_roles.contains("isExpandable"); - if ((getSizeRole || getIsExpandableRole) && !item.isSlow() && item.isDir()) { + if ((getSizeRole || getIsExpandableRole) && item.isDir()) { startDirectorySizeCounting(item, index); }