[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