[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/libs/plasma/widgets
From: Matt Broadstone <mbroadst () gmail ! com>
Date: 2007-08-01 1:25:02
Message-ID: 1185931502.445160.3677.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 694895 by mbroadst:
More refactoring in preparation for text layout code
M +41 -32 icon.cpp
--- trunk/KDE/kdebase/workspace/libs/plasma/widgets/icon.cpp #694894:694895
@@ -110,8 +110,9 @@
void drawBackground(QPainter *painter);
void drawForeground(QPainter *painter);
+ void drawIcon(QPainter *painter);
+ void drawText(QPainter *painter);
-
void checkSvgElements()
{
if (svg.elementExists("background")) {
@@ -526,6 +527,43 @@
}
}
+void Icon::Private::drawIcon(QPainter *painter)
+{
+ if (!icon.isNull()) {
+ qreal iw = iconSize.width();
+ qreal ih = iconSize.height();
+ qreal deltaX = (size.width() - iw) / 2;
+ qreal deltaY = (size.height() - ih) / 2 ;
+ if (state == Private::PressedState) {
+ painter->save();
+ painter->setRenderHint(QPainter::SmoothPixmapTransform);
+ painter->scale(0.95, 0.95);
+ deltaY *= 0.95;
+ deltaX *= 0.95;
+ painter->drawPixmap((int)(deltaX + (iw * .025)), (int)(deltaY + (ih * .025)),
+ icon.pixmap(iconSize.toSize()));
+ painter->restore();
+ } else {
+ painter->drawPixmap((int)deltaX, (int)deltaY, icon.pixmap(iconSize.toSize()));
+ }
+ }
+}
+
+void Icon::Private::drawText(QPainter *painter)
+{
+ if (!text.isEmpty()) {
+ qreal offset = (iconSize.height() + 12); // TODO this shouldn't be hardcoded?
+ QRectF textRect(0, offset, size.width(), size.height() - offset);
+
+ QTextOption textOpt;
+ textOpt.setAlignment(Qt::AlignHCenter | Qt::AlignTop);
+ textOpt.setWrapMode(QTextOption::WordWrap);
+
+ painter->setPen(Qt::white);
+ painter->drawText(textRect, text, textOpt);
+ }
+}
+
void Icon::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option)
@@ -549,26 +587,8 @@
d->svg.resize(d->size);
d->drawBackground(painter);
+ d->drawIcon(painter);
- if (!d->icon.isNull()) {
- qreal iw = d->iconSize.width();
- qreal ih = d->iconSize.height();
- qreal deltaX = (d->size.width() - iw) / 2;
- qreal deltaY = (d->size.height() - ih) / 2 ;
- if (d->state == Private::PressedState) {
- painter->save();
- painter->setRenderHint(QPainter::SmoothPixmapTransform);
- painter->scale(0.95, 0.95);
- deltaY *= 0.95;
- deltaX *= 0.95;
- painter->drawPixmap((int)(deltaX + (iw * .025)), (int)(deltaY + (ih * .025)),
- d->icon.pixmap(d->iconSize.toSize()));
- painter->restore();
- } else {
- painter->drawPixmap((int)deltaX, (int)deltaY, d->icon.pixmap(d->iconSize.toSize()));
- }
- }
-
d->drawForeground(painter);
// Draw corner actions
@@ -579,18 +599,7 @@
}
// Draw text last because its overlayed
- if (!d->text.isEmpty()) {
- qreal offset = (d->iconSize.height() + 12); // TODO this shouldn't be hardcoded?
- QRectF textRect(0, offset, d->size.width(), d->size.height() - offset);
-
- QTextOption textOpt;
- textOpt.setAlignment(Qt::AlignHCenter | Qt::AlignTop);
- textOpt.setWrapMode(QTextOption::WordWrap);
-
- painter->setPen(Qt::white);
- painter->drawText(textRect, d->text, textOpt);
- }
-
+ d->drawText(painter);
}
void Icon::drawActionButtonBase(QPainter* painter, const QSize &size, int element)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic