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

List:       kde-commits
Subject:    KDE/kdebase/workspace
From:       Ivan Čukić <ivan.cukic () kde ! org>
Date:       2010-11-01 10:53:48
Message-ID: 20101101105348.BA44EAC89B () svn ! kde ! org
[Download RAW message or body]

SVN commit 1191877 by ivan:

- Added the api for getting the service status
- Propper handling of icon and name changes for the act manager



 M  +13 -0     libs/kworkspace/kactivityconsumer.cpp  
 M  +14 -0     libs/kworkspace/kactivityconsumer.h  
 M  +16 -1     libs/kworkspace/kactivityinfo.cpp  
 M  +5 -0      libs/kworkspace/kactivityinfo.h  
 M  +6 -1      libs/kworkspace/kactivitymanager_p.cpp  
 M  +2 -0      libs/kworkspace/kactivitymanager_p.h  
 M  +9 -2      plasma/desktop/shell/activity.cpp  
 M  +1 -0      plasma/desktop/shell/activity.h  


--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityconsumer.cpp \
#1191876:1191877 @@ -106,3 +106,16 @@
     }
 }
 
+KActivityConsumer::ServiceStatus KActivityConsumer::serviceStatus()
+{
+    if (!KActivityManager::isActivityServiceRunning()) {
+        return NotRunning;
+    }
+
+    if (!KActivityManager::self()->IsBackstoreAvailable()) {
+        return BareFunctionality;
+    }
+
+    return FullFunctionality;
+}
+
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityconsumer.h #1191876:1191877
@@ -69,6 +69,15 @@
         Closed
     };
 
+    /**
+     * Different states of the activities service
+     */
+    enum ServiceStatus {
+        NotRunning,        ///< Service is not running
+        BareFunctionality, ///< Service is running without nepomuk backend
+        FullFunctionality, ///< Service is running, and nepomuk is available
+    };
+
     explicit KActivityConsumer(QObject * parent = 0);
 
     ~KActivityConsumer();
@@ -93,6 +102,11 @@
      */
     QStringList activitiesForResource(const KUrl & uri);
 
+    /**
+     * @returns status of the activities service
+     */
+    static ServiceStatus serviceStatus();
+
 Q_SIGNALS:
     /**
      * This signal is emitted when the global
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo.cpp #1191876:1191877
@@ -167,7 +167,7 @@
 #define KACTIVITYINFO_DBUS_CAST_RETURN(REPLY_TYPE, CAST_TYPE, METHOD)  \
     QDBusReply < REPLY_TYPE > dbusReply = METHOD;                      \
     if (dbusReply.isValid()) {                                         \
-        return CAST_TYPE(dbusReply.value());                               \
+        return (CAST_TYPE)(dbusReply.value());                         \
     } else {                                                           \
         return CAST_TYPE();                                            \
     }
@@ -206,6 +206,17 @@
         QString, QString, KActivityManager::self()->ActivityIcon(d->id));
 }
 
+KActivityInfo::State KActivityInfo::state() const
+{
+    QDBusReply < int > dbusReply = KActivityManager::self()->ActivityState(d->id);
+
+    if (dbusReply.isValid()) {
+        return (State)(dbusReply.value());
+    } else {
+        return Invalid;
+    }
+}
+
 QString KActivityInfo::name(const QString & id)
 {
     KACTIVITYINFO_DBUS_CAST_RETURN(
@@ -218,6 +229,10 @@
 {
     Availability result = Nothing;
 
+    if (!KActivityManager::isActivityServiceRunning()) {
+        return result;
+    }
+
     if (KActivityManager::self()->ListActivities().value().contains(d->id)) {
         result = BasicInfo;
 
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo.h #1191876:1191877
@@ -167,6 +167,11 @@
     QString icon() const;
 
     /**
+     * @returns the state of the activity
+     */
+    State state() const;
+
+    /**
      * This function is provided for convenience.
      * @returns the name of the specified activity
      * @param id id of the activity
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivitymanager_p.cpp \
#1191876:1191877 @@ -42,7 +42,7 @@
 {
     if (!s_instance) {
         // check if the activity manager is already running
-        if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(ACTIVITY_MANAGER_DBUS_PATH)) \
{ +        if (!isActivityServiceRunning()) {
 
             // not running, trying to launch it
             QString error;
@@ -66,3 +66,8 @@
     return s_instance;
 }
 
+bool KActivityManager::isActivityServiceRunning()
+{
+    return QDBusConnection::sessionBus().interface()->isServiceRegistered(ACTIVITY_MANAGER_DBUS_PATH);
 +}
+
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivitymanager_p.h #1191876:1191877
@@ -26,6 +26,8 @@
 public:
     static KActivityManager * self();
 
+    static bool isActivityServiceRunning();
+
 private:
     KActivityManager();
 
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.cpp #1191876:1191877
@@ -47,13 +47,14 @@
       m_id(id),
       m_info(new KActivityInfo(id, this))
 {
-    // connect(m_info, SIGNAL(changed()), this, SLOT(setName(QString)));
+    connect(m_info, SIGNAL(changed()), this, SLOT(activityChanged()));
 
     if (m_info) {
         m_name = m_info->name();
+        m_icon = m_info->icon();
     } else {
         m_name = m_id;
-        kDebug() << "nepomuk is probably broken :(";
+        m_icon = QString();
     }
 
     m_corona = qobject_cast<DesktopCorona*>(PlasmaApp::self()->corona());
@@ -214,6 +215,12 @@
 
 void Activity::setIcon(const QString &icon)
 {
+    if (m_icon == icon) {
+        return;
+    }
+
+    m_icon = icon;
+
     KActivityController().setActivityIcon(m_id, icon);
     emit changed();
 }
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.h #1191876:1191877
@@ -136,6 +136,7 @@
 
     QString m_id;
     QString m_name;
+    QString m_icon;
     QString m_plugin;
     QHash<QPair<int,int>, Plasma::Containment*> m_containments;
     KActivityInfo *m_info;


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

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