Diffstat (limited to 'core/launcher/runningappbar.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/launcher/runningappbar.cpp | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/core/launcher/runningappbar.cpp b/core/launcher/runningappbar.cpp index 3ac66f2..356200b 100644 --- a/core/launcher/runningappbar.cpp +++ b/core/launcher/runningappbar.cpp @@ -79,105 +79,96 @@ void RunningAppBar::newQcopChannel(const QString& channelName) void RunningAppBar::removedQcopChannel(const QString& channelName) { QString prefix("QPE/Application/"); if (channelName.startsWith(prefix)) { QString appName = channelName.mid(prefix.length()); qDebug("App %s just disconnected!", appName.latin1()); const AppLnk* newGuy = m_AppLnkSet->findExec(appName); if (newGuy) { removeTask(*newGuy); } } } void RunningAppBar::received(const QCString& msg, const QByteArray& data) { // Since fast apps appear and disappear without disconnecting from their // channel we need to watch for the showing/hiding events and update according. QDataStream stream( data, IO_ReadOnly ); if ( msg == "fastAppShowing(QString)") { QString appName; stream >> appName; addTask(*m_AppLnkSet->findExec(appName)); } else if ( msg == "fastAppHiding(QString)") { QString appName; stream >> appName; removeTask(*m_AppLnkSet->findExec(appName)); } } void RunningAppBar::addTask(const AppLnk& appLnk) { // qDebug("Added %s to app list.", appLnk.name().latin1()); AppLnk* newApp = new AppLnk(appLnk); newApp->setExec(appLnk.exec()); m_AppList.prepend(newApp); update(); } void RunningAppBar::removeTask(const AppLnk& appLnk) { unsigned int i = 0; for (; i < m_AppList.count() ; i++) { AppLnk* target = m_AppList.at(i); if (target->exec() == appLnk.exec()) { qDebug("Removing %s from app list.", appLnk.name().latin1()); m_AppList.remove(); - // grab the keyboard back, in case the app crashed/forgot - - QPEApplication *qpeapp = (QPEApplication *) qApp; - - if ( appLnk.exec() == qpeapp-> keyboardGrabbedBy ( )) { - qDebug ( "grabbing keyboard back from %s", appLnk.name().latin1()); - qpeapp-> grabKeyboard ( ); - } - delete target; } } update(); } void RunningAppBar::mousePressEvent(QMouseEvent *e) { // Find out if the user is clicking on an app icon... // If so, snag the index so when we repaint we show it // as highlighed. m_SelectedAppIndex = 0; int x = 0; QListIterator<AppLnk> it( m_AppList ); for ( ; it.current(); ++it, ++m_SelectedAppIndex, x += spacing ) { if ( x + spacing <= width() ) { if ( e->x() >= x && e->x() < x + spacing ) { if ( m_SelectedAppIndex < (int)m_AppList.count() ) { repaint(FALSE); return ; } } } else { break; } } m_SelectedAppIndex = -1; repaint( FALSE ); } void RunningAppBar::mouseReleaseEvent(QMouseEvent *e) { if (e->button() == QMouseEvent::RightButton) { return ; } if ( m_SelectedAppIndex >= 0 ) { QString channel = QString("QPE/Application/") + m_AppList.at(m_SelectedAppIndex)->exec(); if (QCopChannel::isRegistered(channel.latin1())) { // qDebug("%s is running!", m_AppList.at(m_SelectedAppIndex)->exec().latin1()); QCopEnvelope e(channel.latin1(), "raise()"); // This class will delete itself after hearing from the app or the timer expiring (void)new AppMonitor(*m_AppList.at(m_SelectedAppIndex), *this); } else { removeTask(*m_AppList.at(m_SelectedAppIndex)); } |