]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Specify a fallback icon to QIcon::fromTheme()
authorWolfgang Bauer <wbauer@tmo.at>
Tue, 26 Apr 2016 14:11:26 +0000 (16:11 +0200)
committerWolfgang Bauer <wbauer@tmo.at>
Tue, 26 Apr 2016 14:11:26 +0000 (16:11 +0200)
The default fallback of QIcon::fromTheme() is QIcon(), i.e. a null icon.
Set the generic "unknown" icon as fallback to prevent missing icons for
filetypes that specify an icon name that doesn't exist.

This also gets rid of "QPixmap::scaled: Pixmap is a null pixmap"
warnings in that case.

BUG: 358958
BUG: 361034
FIXED-IN: 16.04.1
REVIEW: 127713

src/kitemviews/kstandarditemlistwidget.cpp

index 66131d5fa2faf833413f35a385363cee874a709e..51c5bc896a588f03a450cee07dd4e69d1a6a1918 100644 (file)
@@ -1440,12 +1440,13 @@ void KStandardItemListWidget::closeRoleEditor()
 
 QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size)
 {
 
 QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size)
 {
+    static const QIcon fallbackIcon = QIcon::fromTheme(QStringLiteral("unknown"));
     size *= qApp->devicePixelRatio();
     const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size);
     QPixmap pixmap;
 
     if (!QPixmapCache::find(key, pixmap)) {
     size *= qApp->devicePixelRatio();
     const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size);
     QPixmap pixmap;
 
     if (!QPixmapCache::find(key, pixmap)) {
-        const QIcon icon = QIcon::fromTheme(name);
+        const QIcon icon = QIcon::fromTheme(name, fallbackIcon);
 
         int requestedSize;
         if (size <= KIconLoader::SizeSmall) {
 
         int requestedSize;
         if (size <= KIconLoader::SizeSmall) {