From a246d0eada390936e9c548b13d6e8be2f8485402 Mon Sep 17 00:00:00 2001 From: Eike Hein Date: Mon, 6 Jun 2016 20:01:17 +0900 Subject: [PATCH] Save code by using newly-added KActivities::Consumer signal. Reviewers: #plasma, davidedmundson Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D1774 --- libtaskmanager/activityinfo.cpp | 46 +++------------------------------ libtaskmanager/activityinfo.h | 2 -- 2 files changed, 3 insertions(+), 45 deletions(-) diff --git a/libtaskmanager/activityinfo.cpp b/libtaskmanager/activityinfo.cpp index df20245b2..8427cfd6c 100644 --- a/libtaskmanager/activityinfo.cpp +++ b/libtaskmanager/activityinfo.cpp @@ -31,13 +31,9 @@ public: Private(ActivityInfo *q); ~Private(); - QHash activityInfos; - static int instanceCount; static KActivities::Consumer* activityConsumer; - void refreshActivityInfos(); - private: ActivityInfo *q; }; @@ -57,42 +53,10 @@ ActivityInfo::Private::~Private() if (!instanceCount) { delete activityConsumer; + activityConsumer = nullptr; } } -void ActivityInfo::Private::refreshActivityInfos() -{ - QMutableHashIterator it(activityInfos); - - // Cull invalid activities. - while (it.hasNext()) { - it.next(); - - if (!it.value()->isValid()) { - delete it.value(); - it.remove(); - } - } - - // Find new activities and start listening for changes in their state. - foreach(const QString &activity, activityConsumer->activities()) { - if (!activityInfos.contains(activity)) { - KActivities::Info *info = new KActivities::Info(activity, q); - - // By connecting to ourselves, we will immediately clean up when an - // activity's state transitions to Invalid. - connect(info, SIGNAL(stateChanged(KActivities::Info::State)), - q, SLOT(refreshActivityInfos())); - - activityInfos.insert(activity, info); - } - } - - // Activity list or activity state changes -> number of running - // activities may have changed. - q->numberOfRunningActivitiesChanged(); -} - ActivityInfo::ActivityInfo(QObject *parent) : QObject(parent) , d(new Private(this)) { @@ -100,12 +64,10 @@ ActivityInfo::ActivityInfo(QObject *parent) : QObject(parent) d->activityConsumer = new KActivities::Consumer(); } - d->refreshActivityInfos(); - connect(d->activityConsumer, &KActivities::Consumer::currentActivityChanged, this, &ActivityInfo::currentActivityChanged); - connect(d->activityConsumer, SIGNAL(activitiesChanged(QStringList)), - this, SLOT(refreshActivityInfos())); + connect(d->activityConsumer, &KActivities::Consumer::runningActivitiesChanged, + this, &ActivityInfo::numberOfRunningActivitiesChanged); } ActivityInfo::~ActivityInfo() @@ -139,5 +101,3 @@ QString ActivityInfo::activityName(const QString &id) } } - -#include "moc_activityinfo.cpp" diff --git a/libtaskmanager/activityinfo.h b/libtaskmanager/activityinfo.h index 7a51e9b46..35bfe72e3 100644 --- a/libtaskmanager/activityinfo.h +++ b/libtaskmanager/activityinfo.h @@ -89,8 +89,6 @@ Q_SIGNALS: private: class Private; QScopedPointer d; - - Q_PRIVATE_SLOT(d, void refreshActivityInfos()) }; }