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

List:       kde-commits
Subject:    KDE/kdebase/workspace/libs/kworkspace
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-11-23 21:28:18
Message-ID: 20101123212818.6C711AC8A2 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1200073 by aseigo:

cache the state to avoid flooding dbus


 M  +10 -6     kactivityinfo.cpp  
 M  +2 -1      kactivityinfo.h  
 M  +2 -1      kactivityinfo_p.h  


--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo.cpp #1200072:1200073
@@ -32,6 +32,7 @@
 
 KActivityInfo::Private::Private(KActivityInfo *info, const QString &activityId)
     : q(info),
+      state(KActivityInfo::Invalid),
       id(activityId)
 {
     KActivityManager::self();
@@ -75,10 +76,11 @@
 
 #undef IMPLEMENT_SIGNAL_HANDLER
 
-void KActivityInfo::Private::activityStateChanged(const QString & idChanged, int state) const
+void KActivityInfo::Private::activityStateChanged(const QString & idChanged, int newState)
 {
     if (idChanged == id) {
-        emit q->stateChanged((KActivityInfo::State)state);
+        state = static_cast<KActivityInfo::State>(newState);
+        emit q->stateChanged(state);
     }
 }
 
@@ -114,7 +116,7 @@
 
 bool KActivityInfo::isValid() const
 {
-    return (KActivityManager::self()->ActivityState(d->id) != Invalid);
+    return (state() != Invalid);
 }
 
 void KActivityInfo::associateResource(const KUrl & resource, ResourceType resourceType)
@@ -208,15 +210,17 @@
 
 KActivityInfo::State KActivityInfo::state() const
 {
+    if (d->state == Invalid) {
     QDBusReply < int > dbusReply = KActivityManager::self()->ActivityState(d->id);
 
     if (dbusReply.isValid()) {
-        return (State)(dbusReply.value());
-    } else {
-        return Invalid;
+            d->state = (State)(dbusReply.value());
     }
 }
 
+    return d->state;
+}
+
 QString KActivityInfo::name(const QString & id)
 {
     KACTIVITYINFO_DBUS_CAST_RETURN(
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo.h #1200072:1200073
@@ -35,7 +35,8 @@
  *
  * @since 4.5
  */
-class KDE_EXPORT KActivityInfo: public QObject {
+class KDE_EXPORT KActivityInfo: public QObject
+{
     Q_OBJECT
 
     Q_PROPERTY(KUrl uri READ uri)
--- trunk/KDE/kdebase/workspace/libs/kworkspace/kactivityinfo_p.h #1200072:1200073
@@ -27,7 +27,7 @@
     Private(KActivityInfo *info, const QString &activityId);
 
     KUrl urlForType(KActivityInfo::ResourceType resourceType) const;
-    void activityStateChanged(const QString &, int) const;
+    void activityStateChanged(const QString &, int);
 
     void added(const QString &) const;
     void removed(const QString &) const;
@@ -36,6 +36,7 @@
     void infoChanged(const QString &) const;
 
     KActivityInfo *q;
+    KActivityInfo::State state;
     QString id;
 };
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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