]> cloud.milkyroute.net Git - dolphin.git/commitdiff
[Information Panel] Adjust painting icons for high dpi scaling
authorKai Uwe Broulik <kde@privat.broulik.de>
Thu, 15 Feb 2018 12:37:08 +0000 (13:37 +0100)
committerKai Uwe Broulik <kde@privat.broulik.de>
Thu, 15 Feb 2018 12:37:08 +0000 (13:37 +0100)
Instead of creating our own KIconLoader (which takes ~5ms here) just use QIcon::fromTheme which already does everything right.

BUG: 390488

Differential Revision: https://phabricator.kde.org/D10532

src/panels/information/informationpanelcontent.cpp

index 2e279dc620ed2c9df82642c3307632463da6de5e..157568269d31d08c54a994faa512a54732bbb8dc 100644 (file)
@@ -171,11 +171,9 @@ void InformationPanelContent::showItem(const KFileItem& item)
         if (isSearchUrl) {
             // in the case of a search-URL the URL is not readable for humans
             // (at least not useful to show in the Information Panel)
-            KIconLoader iconLoader;
-            QPixmap icon = iconLoader.loadIcon(QStringLiteral("nepomuk"),
-                                               KIconLoader::NoGroup,
-                                               KIconLoader::SizeEnormous);
-            m_preview->setPixmap(icon);
+            m_preview->setPixmap(
+                QIcon::fromTheme(QStringLiteral("nepomuk")).pixmap(KIconLoader::SizeEnormous, KIconLoader::SizeEnormous)
+            );
         } else {
             // try to get a preview pixmap from the item...
 
@@ -235,11 +233,9 @@ void InformationPanelContent::showItems(const KFileItemList& items)
         m_previewJob->kill();
     }
 
-    KIconLoader iconLoader;
-    QPixmap icon = iconLoader.loadIcon(QStringLiteral("dialog-information"),
-                                       KIconLoader::NoGroup,
-                                       KIconLoader::SizeEnormous);
-    m_preview->setPixmap(icon);
+    m_preview->setPixmap(
+        QIcon::fromTheme(QStringLiteral("dialog-information")).pixmap(KIconLoader::SizeEnormous, KIconLoader::SizeEnormous)
+    );
     setNameLabelText(i18ncp("@label", "%1 item selected", "%1 items selected", items.count()));
 
     if (m_metaDataWidget) {
@@ -324,10 +320,9 @@ void InformationPanelContent::showIcon(const KFileItem& item)
 {
     m_outdatedPreviewTimer->stop();
     if (!applyPlace(item.targetUrl())) {
-        const QPixmap icon = KIconLoader::global()->loadIcon(item.iconName(), KIconLoader::Desktop,
-                                                             KIconLoader::SizeEnormous, KIconLoader::DefaultState,
-                                                             item.overlays());
-        m_preview->setPixmap(icon);
+        QPixmap pixmap = QIcon::fromTheme(item.iconName()).pixmap(KIconLoader::SizeEnormous, KIconLoader::SizeEnormous);
+        KIconLoader::global()->drawOverlays(item.overlays(), pixmap, KIconLoader::Desktop);
+        m_preview->setPixmap(pixmap);
     }
 }