┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodel.cpp
diff options
context:
space:
mode:
authorMartin T. H. Sandsmark <[email protected]>2020-09-25 18:40:20 +0200
committerElvis Angelaccio <[email protected]>2020-11-01 22:17:17 +0000
commit15baa93640bbb49162f26d439e006729ee9c3441 (patch)
treef8d5e64bd9afd12ffa794f49a8187bd51027154d /src/kitemviews/kfileitemmodel.cpp
parent891ebf5758cd3569974c87f3c25f0546fe2613be (diff)
make sure we use valid icons
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index 08407d1ef..c06202fd8 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -19,9 +19,11 @@
#include <QElapsedTimer>
#include <QMimeData>
+#include <QMimeDatabase>
#include <QTimer>
#include <QWidget>
#include <QMutex>
+#include <QIcon>
Q_GLOBAL_STATIC_WITH_ARGS(QMutex, s_collatorMutex, (QMutex::Recursive))
@@ -1657,7 +1659,13 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem& item,
}
if (item.isMimeTypeKnown()) {
- data.insert(sharedValue("iconName"), item.iconName());
+ QString iconName = item.iconName();
+ if (!QIcon::hasThemeIcon(iconName)) {
+ QMimeType mimeType = QMimeDatabase().mimeTypeForName(item.mimetype());
+ iconName = mimeType.genericIconName();
+ }
+
+ data.insert(sharedValue("iconName"), iconName);
if (m_requestRole[TypeRole]) {
data.insert(sharedValue("type"), item.mimeComment());