[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