void TaskLMBMenu::fillMenu() { setCheckable(true); Task::List::iterator itEnd = m_tasks.end(); for (Task::List::iterator it = m_tasks.begin(); it != itEnd; ++it) { Task::Ptr t = (*it); QString text = t->visibleName().replace("&", "&&"); TaskMenuItem *menuItem = new TaskMenuItem(text, t->isActive(), t->isIconified(), t->demandsAttention()); int id = insertItem(QIconSet(t->pixmap()), menuItem); connectItem(id, t, SLOT(activateRaiseOrIconify())); setItemChecked(id, t->isActive()); if (t->demandsAttention()) { m_attentionState = true; m_attentionMap.append(menuItem); } } if (m_attentionState) { m_attentionTimer = new QTimer(this, "AttentionTimer"); connect(m_attentionTimer, SIGNAL(timeout()), SLOT(attentionTimeout())); m_attentionTimer->start(500, true); } }
KasTaskItem::KasTaskItem( KasTasker *parent, Task::Ptr task ) : KasItem( parent ), task_(task), thumbTimer(0), attentionTimer(0) { setIcon( icon() ); setAttention( task->demandsAttention() ); updateTask(false); connect( task, SIGNAL( changed(bool) ), this, SLOT( updateTask(bool) ) ); connect( task, SIGNAL( activated() ), this, SLOT( startAutoThumbnail() ) ); connect( task, SIGNAL( deactivated() ), this, SLOT( stopAutoThumbnail() ) ); connect( task, SIGNAL( iconChanged() ), this, SLOT( iconChanged() ) ); connect( task, SIGNAL( thumbnailChanged() ), this, SLOT( iconChanged() ) ); connect( this, SIGNAL(leftButtonClicked(QMouseEvent *)), SLOT(toggleActivateAction()) ); connect( this, SIGNAL(rightButtonClicked(QMouseEvent *)), SLOT(showWindowMenuAt(QMouseEvent *) ) ); attentionTimer = new QTimer( this, "attentionTimer" ); connect( attentionTimer, SIGNAL( timeout() ), SLOT( checkAttention() ) ); attentionTimer->start( CHECK_ATTENTION_DELAY ); }