From ff9ce4dab36fa6afb1d7c602a1171cd81341d860 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 21 May 2012 22:40:57 +0200 Subject: [PATCH] Colorize icons when an item is selected BUG: 295515 FIXED-IN: 4.9.0 --- src/kitemviews/kstandarditemlistwidget.cpp | 24 ++++++++++------------ src/kitemviews/kstandarditemlistwidget.h | 2 -- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 0cd11d363..e85dfaabf 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -559,6 +559,7 @@ void KStandardItemListWidget::selectedChanged(bool selected) { Q_UNUSED(selected); updateAdditionalInfoTextColor(); + m_dirtyContent = true; } void KStandardItemListWidget::siblingsInformationChanged(const QBitArray& current, const QBitArray& previous) @@ -792,11 +793,19 @@ void KStandardItemListWidget::updatePixmapCache() } if (m_isCut) { - applyCutEffect(m_pixmap); + KIconEffect* effect = KIconLoader::global()->iconEffect(); + m_pixmap = effect->apply(m_pixmap, KIconLoader::Desktop, KIconLoader::DisabledState); } if (m_isHidden) { - applyHiddenEffect(m_pixmap); + KIconEffect::semiTransparent(m_pixmap); + } + + if (isSelected()) { + const QColor color = palette().brush(QPalette::Normal, QPalette::Highlight).color(); + QImage image = m_pixmap.toImage(); + KIconEffect::colorize(image, color, 1.0f); + m_pixmap = QPixmap::fromImage(image); } } @@ -1253,17 +1262,6 @@ QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, int size) return pixmap; } -void KStandardItemListWidget::applyCutEffect(QPixmap& pixmap) -{ - KIconEffect* effect = KIconLoader::global()->iconEffect(); - pixmap = effect->apply(pixmap, KIconLoader::Desktop, KIconLoader::DisabledState); -} - -void KStandardItemListWidget::applyHiddenEffect(QPixmap& pixmap) -{ - KIconEffect::semiTransparent(pixmap); -} - QSizeF KStandardItemListWidget::preferredRatingSize(const KItemListStyleOption& option) { const qreal height = option.fontMetrics.ascent(); diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h index 90a6f5055..72c081b31 100644 --- a/src/kitemviews/kstandarditemlistwidget.h +++ b/src/kitemviews/kstandarditemlistwidget.h @@ -161,8 +161,6 @@ private: QRectF roleEditingRect(const QByteArray &role) const; static QPixmap pixmapForIcon(const QString& name, int size); - static void applyCutEffect(QPixmap& pixmap); - static void applyHiddenEffect(QPixmap& pixmap); /** * @return Preferred size of the rating-image based on the given -- 2.47.3