┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp7
-rw-r--r--src/kitemviews/kstandarditemlistwidget.cpp23
-rw-r--r--src/panels/information/informationpanelcontent.cpp9
5 files changed, 14 insertions, 28 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d39984b78..0f997225f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,6 +76,7 @@ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
WindowSystem
WidgetsAddons
Codecs
+ GuiAddons
)
find_package(KF6UserFeedback ${KF6_MIN_VERSION})
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 29eef5753..bbf882a8a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -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
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index 0ff431ac9..ac14ed795 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -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;
}
}
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp
index e3e925c03..c8a6955b9 100644
--- a/src/kitemviews/kstandarditemlistwidget.cpp
+++ b/src/kitemviews/kstandarditemlistwidget.cpp
@@ -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;
}
}
diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp
index 70d85a402..fc2d0f938 100644
--- a/src/panels/information/informationpanelcontent.cpp
+++ b/src/panels/information/informationpanelcontent.cpp
@@ -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