Icon::Icon(TaskManager::AbstractGroupableItem *abstractItem, Launcher *launcher, Job *job, Applet *parent) : QGraphicsWidget(parent), m_applet(parent), m_task(NULL), m_launcher(NULL), m_glowEffect(NULL), m_layout(new QGraphicsLinearLayout(this)), m_animationTimeLine(new QTimeLine(1000, this)), m_jobAnimationTimeLine(NULL), m_itemType(TypeOther), m_factor(parent->initialFactor()), m_animationProgress(-1), m_jobsProgress(0), m_jobsAnimationProgress(0), m_dragTimer(0), m_highlightTimer(0), m_menuVisible(false), m_demandsAttention(false), m_jobsRunning(false), m_isVisible(true), m_isPressed(false) { setObjectName("FancyTasksIcon"); setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); setAcceptsHoverEvents(true); setAcceptDrops(true); setFocusPolicy(Qt::StrongFocus); setFlag(QGraphicsItem::ItemIsFocusable); setLayout(m_layout); m_visualizationPixmap = NULL; m_thumbnailPixmap = NULL; m_animationTimeLine->setFrameRange(0, 100); m_animationTimeLine->setUpdateInterval(50); m_animationTimeLine->setCurveShape(QTimeLine::LinearCurve); m_layout->setOrientation((m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::RightEdge)?Qt::Vertical:Qt::Horizontal); m_layout->addStretch(); m_layout->addStretch(); if (abstractItem) { setTask(abstractItem); } else if (launcher) { setLauncher(launcher); } else if (job) { addJob(job); } connect(this, SIGNAL(destroyed()), m_applet, SLOT(updateSize())); connect(this, SIGNAL(hoverMoved(QGraphicsWidget*, qreal)), m_applet, SLOT(itemHoverMoved(QGraphicsWidget*, qreal))); connect(this, SIGNAL(hoverLeft()), m_applet, SLOT(hoverLeft())); connect(m_applet, SIGNAL(sizeChanged(qreal)), this, SLOT(setSize(qreal))); connect(m_applet, SIGNAL(sizeChanged(qreal)), this, SIGNAL(sizeChanged(qreal))); connect(m_animationTimeLine, SIGNAL(finished()), this, SLOT(stopAnimation())); connect(m_animationTimeLine, SIGNAL(frameChanged(int)), this, SLOT(progressAnimation(int))); }
void Separator::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) emit hoverLeft(); }