[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