]> cloud.milkyroute.net Git - dolphin.git/commitdiff
don't use the expensive QPixmap::setAlphaChannel() (see http://techbase.kde.org/Devel...
authorPeter Penz <peter.penz19@gmail.com>
Fri, 29 Aug 2008 16:12:56 +0000 (16:12 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 29 Aug 2008 16:12:56 +0000 (16:12 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=854487

src/iconmanager.cpp

index 6cf6f001ca77b10790eb39f4eefd62328ba3893e..5f9daf49d8a4dff2ff1c532869e9270a8dd5bbd6 100644 (file)
@@ -462,29 +462,23 @@ bool IconManager::applyImageFrame(QPixmap& icon)
 
     // add a border
     painter.setPen(palette.color(QPalette::Text));
-    painter.setBrush(Qt::NoBrush);
     painter.drawRect(0, 0, width, height);
     painter.drawRect(1, 1, width - 2, height - 2);
-
-    // dim image frame by 12.5 %
-    painter.setPen(QColor(0, 0, 0, 32));
-    painter.drawRect(frame, frame, width - doubleFrame, height - doubleFrame);
+     
+    painter.setCompositionMode(QPainter::CompositionMode_Plus);
+    QColor blendColor = palette.color(QPalette::Normal, QPalette::Base);
+    
+    blendColor.setAlpha(255 - 32);
+    painter.setPen(blendColor);
+    painter.drawRect(0, 0, width, height);
+    
+    blendColor.setAlpha(255 - 64);
+    painter.setPen(blendColor);
+    painter.drawRect(1, 1, width - 2, height - 2);
     painter.end();
 
     icon = framedIcon;
 
-    // provide an alpha channel for the border
-    QPixmap alphaChannel(icon.size());
-    alphaChannel.fill();
-
-    QPainter alphaPainter(&alphaChannel);
-    alphaPainter.setBrush(Qt::NoBrush);
-    alphaPainter.setPen(QColor(32, 32, 32));
-    alphaPainter.drawRect(0, 0, width, height);
-    alphaPainter.setPen(QColor(64, 64, 64));
-    alphaPainter.drawRect(1, 1, width - 2, height - 2);
-
-    icon.setAlphaChannel(alphaChannel);
     return true;
 }