┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp9
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.h2
2 files changed, 6 insertions, 5 deletions
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index 679370455..5e68b29e3 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -577,6 +577,7 @@ void KFileItemModelRolesUpdater::slotGotPreview(const KFileItem &item, const QPi
connect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged);
Q_EMIT previewJobFinished(); // For unit testing
+ applyResolvedRoles(index, ResolveAll, item);
m_finishedItems.insert(item);
}
@@ -597,7 +598,7 @@ void KFileItemModelRolesUpdater::slotPreviewFailed(const KFileItem &item)
m_model->setData(index, data);
connect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged);
- applyResolvedRoles(index, ResolveAll);
+ applyResolvedRoles(index, ResolveAll, item);
m_finishedItems.insert(item);
}
}
@@ -1222,13 +1223,13 @@ void KFileItemModelRolesUpdater::applySortProgressToModel()
m_model->emitSortProgress(resolvedCount);
}
-bool KFileItemModelRolesUpdater::applyResolvedRoles(int index, ResolveHint hint)
+bool KFileItemModelRolesUpdater::applyResolvedRoles(int index, ResolveHint hint, const KFileItem &referenceItem)
{
- const KFileItem item = m_model->fileItem(index);
+ const KFileItem item = !referenceItem.isNull() && referenceItem.isMimeTypeKnown() ? referenceItem : m_model->fileItem(index);
const bool resolveAll = (hint == ResolveAll);
bool iconChanged = false;
- if (!item.isMimeTypeKnown() || !item.isFinalIconKnown()) {
+ if (resolveAll && (!item.isMimeTypeKnown() || !item.isFinalIconKnown())) {
item.determineMimeType();
iconChanged = true;
} else if (!m_model->data(index).contains("iconName")) {
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.h b/src/kitemviews/kfileitemmodelrolesupdater.h
index aadcb66f8..ec56d9801 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.h
+++ b/src/kitemviews/kfileitemmodelrolesupdater.h
@@ -325,7 +325,7 @@ private:
void applySortProgressToModel();
enum ResolveHint { ResolveFast, ResolveAll };
- bool applyResolvedRoles(int index, ResolveHint hint);
+ bool applyResolvedRoles(int index, ResolveHint hint, const KFileItem &referenceItem = KFileItem());
QHash<QByteArray, QVariant> rolesData(const KFileItem &item, int index);
/**