┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-08-29 16:12:56 +0000
committerPeter Penz <[email protected]>2008-08-29 16:12:56 +0000
commitf385b7c674d76874a6586e9cce1994597b815371 (patch)
treec66807566ca083a1e7255378a344057b4d8576ba /src
parent70bd78c829299f2f0b7b6fec02495985443b917c (diff)
don't use the expensive QPixmap::setAlphaChannel() (see http://techbase.kde.org/Development/Tutorials/Graphics/Performance)
svn path=/trunk/KDE/kdebase/apps/; revision=854487
Diffstat (limited to 'src')
-rw-r--r--src/iconmanager.cpp28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp
index 6cf6f001c..5f9daf49d 100644
--- a/src/iconmanager.cpp
+++ b/src/iconmanager.cpp
@@ -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;
}