From 15baa93640bbb49162f26d439e006729ee9c3441 Mon Sep 17 00:00:00 2001 From: "Martin T. H. Sandsmark" Date: Fri, 25 Sep 2020 18:40:20 +0200 Subject: make sure we use valid icons --- src/kitemviews/kfileitemlistview.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/kitemviews/kfileitemlistview.cpp') diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index 75eb1559e..6086eb8a2 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include // #define KFILEITEMLISTVIEW_DEBUG @@ -168,6 +170,9 @@ QPixmap KFileItemListView::createDragPixmap(const KItemSet& indexes) const QPixmap pixmap = model()->data(index).value("iconPixmap").value(); if (pixmap.isNull()) { QIcon icon = QIcon::fromTheme(model()->data(index).value("iconName").toString()); + if (icon.isNull()) { + icon = QIcon::fromTheme("unknown"); + } if (!icon.isNull()) { pixmap = icon.pixmap(size, size); } else { @@ -210,7 +215,12 @@ void KFileItemListView::initializeItemListWidget(KItemListWidget* item) KFileItemModel* fileItemModel = static_cast(model()); const KFileItem fileItem = fileItemModel->fileItem(item->index()); - data.insert("iconName", fileItem.iconName()); + QString iconName = fileItem.iconName(); + if (!QIcon::hasThemeIcon(iconName)) { + QMimeDatabase mimeDb; + iconName = mimeDb.mimeTypeForName(fileItem.mimetype()).genericIconName(); + } + data.insert("iconName", iconName); item->setData(data, {"iconName"}); } } -- cgit v1.3