]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Colorize icons when an item is selected
authorPeter Penz <peter.penz19@gmail.com>
Mon, 21 May 2012 20:40:57 +0000 (22:40 +0200)
committerPeter Penz <peter.penz19@gmail.com>
Mon, 21 May 2012 20:41:57 +0000 (22:41 +0200)
BUG: 295515
FIXED-IN: 4.9.0

src/kitemviews/kstandarditemlistwidget.cpp
src/kitemviews/kstandarditemlistwidget.h

index 0cd11d3637199993b711ac562ce26f9d7b8db8d9..e85dfaabf131e75a21374ecf2ee8c40a0cd18917 100644 (file)
@@ -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();
index 90a6f505562a7c744cda12acd69a083ad3bc5f46..72c081b311c7a2fc515863ba7c1c3969f091024a 100644 (file)
@@ -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