[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets/tasks
From:       Peter Pan <wppan () redflag-linux ! com>
Date:       2009-07-30 1:35:21
Message-ID: 1248917721.341387.21908.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1004385 by peterpan:

animate while the application is starting up.

BUG:189643


 M  +23 -15    abstracttaskitem.cpp  
 M  +1 -0      tasks.cpp  
 M  +15 -1     windowtaskitem.cpp  
 M  +3 -0      windowtaskitem.h  


--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/abstracttaskitem.cpp \
#1004384:1004385 @@ -586,26 +586,34 @@
 
     QRectF bounds = boundingRect().adjusted(m_applet->itemLeftMargin(), \
m_applet->itemTopMargin(), -m_applet->itemRightMargin(), \
-m_applet->itemBottomMargin());  
-    if ((!m_animId && ~option->state & QStyle::State_MouseOver) ||
-         (m_oldBackgroundPrefix != "hover" && m_backgroundPrefix != "hover")) {
-        m_icon.paint(painter, iconRect(bounds).toRect());
+    WindowTaskItem *window = qobject_cast<WindowTaskItem *>(this);
+    QGraphicsWidget *busyWidget;
+    busyWidget = window ? window->busyWidget() : 0;
+    
+    if (busyWidget) {
+        busyWidget->setGeometry(iconRect(bounds));
+        busyWidget->show();
     } else {
-        KIconEffect *effect = KIconLoader::global()->iconEffect();
-        QPixmap result = m_icon.pixmap(iconRect(bounds).toRect().size());
+        if ((!m_animId && ~option->state & QStyle::State_MouseOver) 
+            ||(m_oldBackgroundPrefix != "hover" && m_backgroundPrefix != "hover")) {
+            m_icon.paint(painter, iconRect(bounds).toRect());
+        } else {
+            KIconEffect *effect = KIconLoader::global()->iconEffect();
+            QPixmap result = m_icon.pixmap(iconRect(bounds).toRect().size());
 
-        if (effect->hasEffect(KIconLoader::Desktop, KIconLoader::ActiveState)) {
-            if (qFuzzyCompare(qreal(1.0), m_alpha)) {
-                result = effect->apply(result, KIconLoader::Desktop, \
                KIconLoader::ActiveState);
-            } else {
-                result = Plasma::PaintUtils::transition(
-                    result,
-                    effect->apply(result, KIconLoader::Desktop,
-                                  KIconLoader::ActiveState), \
m_fadeIn?m_alpha:1-m_alpha); +            if (effect->hasEffect(KIconLoader::Desktop, \
KIconLoader::ActiveState)) { +                if (qFuzzyCompare(qreal(1.0), m_alpha)) \
{ +                    result = effect->apply(result, KIconLoader::Desktop, \
KIconLoader::ActiveState); +                } else {
+                    result = Plasma::PaintUtils::transition(result,
+                                        effect->apply(result, KIconLoader::Desktop,
+                                        KIconLoader::ActiveState), \
m_fadeIn?m_alpha:1-m_alpha); +                }
             }
+            painter->drawPixmap(iconRect(bounds).topLeft(), result);
         }
-        painter->drawPixmap(iconRect(bounds).topLeft(), result);
     }
-
+    
     painter->setPen(QPen(textColor(), 1.0));
 
     QRect rect = textRect(bounds).toRect();
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/tasks.cpp #1004384:1004385
@@ -399,6 +399,7 @@
 
 void Tasks::setPopupDialog(bool status)
 {
+    Q_UNUSED(status)
     QWidget *widget = qobject_cast<QWidget *>(sender());
     
     if (widget->isVisible()) {
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/windowtaskitem.cpp \
#1004384:1004385 @@ -60,7 +60,8 @@
 
 WindowTaskItem::WindowTaskItem(QGraphicsWidget *parent, Tasks *applet)
     : AbstractTaskItem(parent, applet),
-      m_task(0)
+      m_task(0),
+      m_busyWidget(0)
 {
 }
 
@@ -239,6 +240,11 @@
     connect(task, SIGNAL(gotTaskPointer()), this, SLOT(gotTaskPointer()));
     setText(task->startup()->text());
     setIcon(KIcon(task->startup()->icon()));
+
+    if (!m_busyWidget) {
+        m_busyWidget = new Plasma::BusyWidget(this);
+        m_busyWidget->hide();
+    }        
 }
 
 void WindowTaskItem::gotTaskPointer()
@@ -246,6 +252,9 @@
     //kDebug();
     TaskManager::TaskItem *item = qobject_cast<TaskManager::TaskItem*>(sender());
     if (item) {
+        delete m_busyWidget;
+        m_busyWidget = 0;
+
         setWindowTask(item);
     }
 }
@@ -342,5 +351,10 @@
     }
 }
 
+QGraphicsWidget *WindowTaskItem::busyWidget() const
+{
+    return m_busyWidget;
+}
+
 #include "windowtaskitem.moc"
 
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/windowtaskitem.h \
#1004384:1004385 @@ -22,6 +22,7 @@
 #ifndef WINDOWTASKITEM_H
 #define WINDOWTASKITEM_H
 
+#include <Plasma/BusyWidget>
 #include "abstracttaskitem.h"
 // Own
 #include <taskmanager/taskmanager.h>
@@ -54,6 +55,7 @@
     virtual bool isWindowItem() const;
     virtual bool isActive() const;
     virtual void setAdditionalMimeData(QMimeData* mimeData);
+    QGraphicsWidget *busyWidget() const;
 
 signals:
     /** Emitted when a window is selected for activation, minimization, \
iconification */ @@ -80,6 +82,7 @@
     void setWindowTask(TaskManager::TaskItem* taskItem);
 
     TaskManager::TaskItem *m_task;
+    Plasma::BusyWidget *m_busyWidget;
 };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic