┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kstandarditemlistwidget.cpp
diff options
context:
space:
mode:
authorKai Uwe Broulik <[email protected]>2018-10-24 09:52:36 +0200
committerKai Uwe Broulik <[email protected]>2018-10-24 09:52:36 +0200
commit502a5c86feb0015c42f052d242c8115de320a38e (patch)
treeeb07582b17bda76401f1121f93081f9711a989e2 /src/kitemviews/kstandarditemlistwidget.cpp
parent200e0d1f07428427913bd118467909d77c14a742 (diff)
[KStandardItemListWidget] Pass icon state to overlay painter
Ensures the overlay is painted in the same icon state, especially the selected one so dark overlays turn white. Differential Revision: https://phabricator.kde.org/D16307
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
-rw-r--r--src/kitemviews/kstandarditemlistwidget.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp
index 8d943ae16..f56f68ac5 100644
--- a/src/kitemviews/kstandarditemlistwidget.cpp
+++ b/src/kitemviews/kstandarditemlistwidget.cpp
@@ -1500,9 +1500,25 @@ QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStrin
// setup time.
foreach (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);
+ KIconLoader::global()->drawOverlays(overlays, pixmap, KIconLoader::Desktop, state);
break;
}
}