diff options
| author | Peter Penz <[email protected]> | 2012-05-21 22:40:57 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-05-21 22:41:57 +0200 |
| commit | ff9ce4dab36fa6afb1d7c602a1171cd81341d860 (patch) | |
| tree | c55a361baa76e8977c19a6e317764438a207ab99 /src/kitemviews | |
| parent | 894232ebda5b2cf155a4f4e5bf1287eb700faa18 (diff) | |
Colorize icons when an item is selected
BUG: 295515
FIXED-IN: 4.9.0
Diffstat (limited to 'src/kitemviews')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 24 | ||||
| -rw-r--r-- | 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 |
