]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Port from KIconLoader::drawOverlays to KIconUtils::addOverlays
authorNicolas Fella <nicolas.fella@gmx.de>
Fri, 26 Jul 2024 22:11:31 +0000 (00:11 +0200)
committerNicolas Fella <nicolas.fella@gmx.de>
Sat, 27 Jul 2024 11:52:55 +0000 (11:52 +0000)
The latter is what most other projects use

CMakeLists.txt
src/CMakeLists.txt
src/kitemviews/kfileitemmodelrolesupdater.cpp
src/kitemviews/kstandarditemlistwidget.cpp
src/panels/information/informationpanelcontent.cpp

index d39984b785836a4a63a7de14e0b8c14926a088a5..0f997225fcca3552022fc2a04ee243d62ae3719f 100644 (file)
@@ -76,6 +76,7 @@ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
     WindowSystem
     WidgetsAddons
     Codecs
+    GuiAddons
 )
 
 find_package(KF6UserFeedback ${KF6_MIN_VERSION})
index 29eef57535a4b4db2bf19402133bb7c68241aac1..bbf882a8a7c644a7eaae046b6c134b3fce23aa6b 100644 (file)
@@ -203,6 +203,7 @@ target_link_libraries(
     Qt6::DBus
     Qt6::Gui
     KF6::I18n
+    KF6::GuiAddons
     KF6::IconThemes
     KF6::KIOCore
     KF6::KIOWidgets
@@ -449,6 +450,7 @@ target_include_directories(dolphinstatic SYSTEM PRIVATE ${PHONON_INCLUDES})
 target_link_libraries(dolphinstatic
     dolphinprivate
     KF6::CoreAddons
+    KF6::GuiAddons
     KF6::KCMUtils
     KF6::DBusAddons
     KF6::Notifications
index 0ff431ac99a5366120d6fafb568ee52d12209438..ac14ed795d06391309d7f8fb2308053b5c97ffb0 100644 (file)
@@ -16,6 +16,7 @@
 #include <KIO/ListJob>
 #include <KIO/PreviewJob>
 #include <KIconLoader>
+#include <KIconUtils>
 #include <KJobWidgets>
 #include <KOverlayIconPlugin>
 #include <KPluginMetaData>
@@ -557,15 +558,13 @@ void KFileItemModelRolesUpdater::slotGotPreview(const KFileItem &item, const QPi
     const QStringList overlays = data["iconOverlays"].toStringList();
     // Strangely KFileItem::overlays() returns empty string-values, so
     // we need to check first whether an overlay must be drawn at all.
-    // It is more efficient to do it here, as KIconLoader::drawOverlays()
-    // assumes that an overlay will be drawn and has some additional
-    // setup time.
     if (!scaledPixmap.isNull()) {
         for (const QString &overlay : overlays) {
             if (!overlay.isEmpty()) {
                 // There is at least one overlay, draw all overlays above m_pixmap
                 // and cancel the check
-                KIconLoader::global()->drawOverlays(overlays, scaledPixmap, KIconLoader::Desktop);
+                const QSize size = scaledPixmap.size();
+                scaledPixmap = KIconUtils::addOverlays(scaledPixmap, overlays).pixmap(size);
                 break;
             }
         }
index e3e925c035b72b0afa73ef814c8b00ac2d7d60ca..c8a6955b9406c990ce51801476482b349db9a469 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <KIconEffect>
 #include <KIconLoader>
+#include <KIconUtils>
 #include <KRatingPainter>
 #include <KStringHandler>
 
@@ -1647,30 +1648,12 @@ QPixmap KStandardItemListWidget::pixmapForIcon(const QString &name, const QStrin
 
         // Strangely KFileItem::overlays() returns empty string-values, so
         // we need to check first whether an overlay must be drawn at all.
-        // It is more efficient to do it here, as KIconLoader::drawOverlays()
-        // assumes that an overlay will be drawn and has some additional
-        // setup time.
         for (const QString &overlay : overlays) {
             if (!overlay.isEmpty()) {
-                int state = KIconLoader::DefaultState;
-
-                switch (mode) {
-                case QIcon::Normal:
-                    break;
-                case QIcon::Active:
-                    state = KIconLoader::ActiveState;
-                    break;
-                case QIcon::Disabled:
-                    state = KIconLoader::DisabledState;
-                    break;
-                case QIcon::Selected:
-                    state = KIconLoader::SelectedState;
-                    break;
-                }
-
                 // There is at least one overlay, draw all overlays above m_pixmap
                 // and cancel the check
-                KIconLoader::global()->drawOverlays(overlays, pixmap, KIconLoader::Desktop, state);
+                const QSize size = pixmap.size();
+                pixmap = KIconUtils::addOverlays(pixmap, overlays).pixmap(size, mode);
                 break;
             }
         }
index 70d85a40211f2f3c928c07b391f76a517035fafa..fc2d0f9388ff16f51f549ef3668abda392bde787 100644 (file)
@@ -10,6 +10,7 @@
 #include <KIO/PreviewJob>
 #include <KIconEffect>
 #include <KIconLoader>
+#include <KIconUtils>
 #include <KJobWidgets>
 #include <KLocalizedString>
 #include <KSeparator>
@@ -351,8 +352,8 @@ bool InformationPanelContent::gestureEvent(QGestureEvent *event)
 void InformationPanelContent::showIcon(const KFileItem &item)
 {
     m_outdatedPreviewTimer->stop();
-    QPixmap pixmap = QIcon::fromTheme(item.iconName()).pixmap(m_preview->size(), devicePixelRatioF());
-    KIconLoader::global()->drawOverlays(item.overlays(), pixmap, KIconLoader::Desktop);
+    QIcon icon = QIcon::fromTheme(item.iconName());
+    QPixmap pixmap = KIconUtils::addOverlays(icon, item.overlays()).pixmap(m_preview->size());
     m_preview->setPixmap(pixmap);
 }
 
@@ -360,8 +361,8 @@ void InformationPanelContent::showPreview(const KFileItem &item, const QPixmap &
 {
     m_outdatedPreviewTimer->stop();
 
-    QPixmap p = pixmap;
-    KIconLoader::global()->drawOverlays(item.overlays(), p, KIconLoader::Desktop);
+    const QSize size = pixmap.size();
+    QPixmap p = KIconUtils::addOverlays(pixmap, item.overlays()).pixmap(size);
 
     if (m_isVideo) {
         // adds a play arrow overlay