[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 0:52:26
Message-ID: 1185929546.578893.30952.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 694891 by mbroadst:
Refactor these to Private, makes paint more readable and gets us ready for new text layout code
M +65 -55 icon.cpp
--- trunk/KDE/kdebase/workspace/libs/plasma/widgets/icon.cpp #694890:694891
@@ -108,6 +108,10 @@
qDeleteAll(cornerActions);
}
+ void drawBackground(QPainter *painter);
+ void drawForeground(QPainter *painter);
+
+
void checkSvgElements()
{
if (svg.elementExists("background")) {
@@ -464,6 +468,64 @@
return QRectF(QPointF(0, 0), d->size);
}
+void Icon::Private::drawBackground(QPainter *painter)
+{
+ QString element;
+ if (svgElements & Private::SvgBackground) {
+ element = "background";
+ }
+
+ switch (state) {
+ case Private::NoState:
+ break;
+ case Private::HoverState:
+ if (svgElements & Private::SvgBackgroundHover) {
+ element = "background-hover";
+ }
+ break;
+ case Private::PressedState:
+ if (svgElements & Private::SvgBackgroundPressed) {
+ element = "background-pressed";
+ } else if (svgElements & Private::SvgBackgroundHover) {
+ element = "background-hover";
+ }
+ break;
+ }
+
+ if (!element.isEmpty()) {
+ svg.paint(painter, 0, 0, element);
+ }
+}
+
+void Icon::Private::drawForeground(QPainter *painter)
+{
+ QString element;
+ if (svgElements & Private::SvgForeground) {
+ element = "foreground";
+ }
+
+ switch (state) {
+ case Private::NoState:
+ break;
+ case Private::HoverState:
+ if (svgElements & Private::SvgForegroundHover) {
+ element = "foreground-hover";
+ }
+ break;
+ case Private::PressedState:
+ if (svgElements & Private::SvgForegroundPressed) {
+ element = "foreground-pressed";
+ } else if (svgElements & Private::SvgForegroundHover) {
+ element = "foreground-hover";
+ }
+ break;
+ }
+
+ if (!element.isEmpty()) {
+ svg.paint(painter, 0, 0, element);
+ }
+}
+
void Icon::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option)
@@ -486,34 +548,8 @@
#endif
d->svg.resize(d->size);
+ d->drawBackground(painter);
- QString element;
- if (d->svgElements & Private::SvgBackground) {
- element = "background";
- }
-
- switch (d->state) {
- case Private::NoState:
- break;
- case Private::HoverState:
- if (d->svgElements & Private::SvgBackgroundHover) {
- element = "background-hover";
- }
- break;
- case Private::PressedState:
- if (d->svgElements & Private::SvgBackgroundPressed) {
- element = "background-pressed";
- } else if (d->svgElements & Private::SvgBackgroundHover) {
- element = "background-hover";
- }
- break;
- }
-
- if (!element.isEmpty()) {
- d->svg.paint(painter, 0, 0, element);
- element = QString();
- }
-
if (!d->icon.isNull()) {
qreal iw = d->iconSize.width();
qreal ih = d->iconSize.height();
@@ -533,35 +569,9 @@
}
}
- // Make it default
- if (d->svgElements & Private::SvgForeground) {
- element = "foreground";
- }
+ d->drawForeground(painter);
- switch (d->state) {
- case Private::NoState:
- break;
- case Private::HoverState:
- if (d->svgElements & Private::SvgForegroundHover) {
- element = "foreground-hover";
- }
- break;
- case Private::PressedState:
- if (d->svgElements & Private::SvgForegroundPressed) {
- element = "foreground-pressed";
- } else if (d->svgElements & Private::SvgForegroundHover) {
- element = "foreground-hover";
- }
- break;
- }
-
- if (!element.isEmpty()) {
- //kDebug() << "painting " << element << endl;
- d->svg.paint(painter, 0, 0, element);
- element.clear();
- }
-
- // Draw top-left button
+ // Draw corner actions
foreach (IconAction *action, d->cornerActions) {
if (action->animationId()) {
action->paint(painter);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic