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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/generic/applets/activitybar
From:       Chani Armitage <chanika () gmail ! com>
Date:       2010-11-02 22:03:17
Message-ID: 20101102220317.8BE57AC8A3 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1192401 by chani:

a little experiment: let's only show running activities here

 M  +24 -1     activitybar.cpp  


--- trunk/KDE/kdebase/workspace/plasma/generic/applets/activitybar/activitybar.cpp #1192400:1192401
@@ -60,7 +60,8 @@
     //TODO 4.6 convert netbook to the activity API so we won't need this
     if (qApp->applicationName() == "plasma-desktop") {
         m_engine = dataEngine("org.kde.activities");
-        QStringList activities = m_engine->sources();
+        Plasma::DataEngine::Data data = m_engine->query("_Convenience");
+        QStringList activities = data["Running"].toStringList();
         //kDebug() << "$$$$$$$$$$$$# sources:" << activities.size();
         foreach (const QString &id, activities) {
             insertActivity(id);
@@ -327,11 +328,33 @@
     }
 
     int index = m_activities.indexOf(source);
+    if (data["State"].toString() == "Stopped") {
+        if (index >= 0) {
+            //take it out
+            m_activities.removeAt(index);
+            m_tabBar->blockSignals(true);
+            m_tabBar->removeTab(index);
+            m_tabBar->blockSignals(false);
+
+            setPreferredSize(m_tabBar->nativeWidget()->sizeHint());
+            emit sizeHintChanged(Qt::PreferredSize);
+        }
+        return;
+    } else if (index < 0) {
+        //add it back in
+        index = m_activities.size();
+        insertActivity(source);
+    }
+
+    //update the actual content
     m_tabBar->setTabText(index, data["Name"].toString());
     m_tabBar->setTabIcon(index, KIcon(data["Icon"].toString()));
     if (data["Current"].toBool()) {
         m_tabBar->setCurrentIndex(index);
     }
+
+    setPreferredSize(m_tabBar->nativeWidget()->sizeHint());
+    emit sizeHintChanged(Qt::PreferredSize);
 }
 
 #include "activitybar.moc"
[prev in list] [next in list] [prev in thread] [next in thread] 

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