From 5ec8b3fe482e809c6c350c0a41aa1931835fcef0 Mon Sep 17 00:00:00 2001 From: Fushan Wen Date: Wed, 15 Dec 2021 18:59:09 +0800 Subject: [PATCH] libtaskmanager: Add activities() to get all activities defined in the session This is required to fix BUG 440496. plasma-desktop can't use nullUuid to move a window to all activities. CCBUG: 440496 --- libtaskmanager/activityinfo.cpp | 11 +++++++++++ libtaskmanager/activityinfo.h | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/libtaskmanager/activityinfo.cpp b/libtaskmanager/activityinfo.cpp index 8bb8e5e136..318ee05282 100644 --- a/libtaskmanager/activityinfo.cpp +++ b/libtaskmanager/activityinfo.cpp @@ -52,6 +52,7 @@ ActivityInfo::ActivityInfo(QObject *parent) } connect(d->activityConsumer, &KActivities::Consumer::currentActivityChanged, this, &ActivityInfo::currentActivityChanged); + connect(d->activityConsumer, &KActivities::Consumer::activitiesChanged, this, &ActivityInfo::numberOfActivitiesChanged); connect(d->activityConsumer, &KActivities::Consumer::runningActivitiesChanged, this, &ActivityInfo::numberOfRunningActivitiesChanged); connect(d->activityConsumer, &KActivities::Consumer::runningActivitiesChanged, this, &ActivityInfo::namesOfRunningActivitiesChanged); @@ -84,6 +85,16 @@ QString ActivityInfo::currentActivity() const return d->activityConsumer->currentActivity(); } +int ActivityInfo::numberOfActivities() const +{ + return d->activityConsumer->activities().count(); +} + +QStringList ActivityInfo::activities() const +{ + return d->activityConsumer->activities(); +} + int ActivityInfo::numberOfRunningActivities() const { return d->activityConsumer->activities(KActivities::Info::State::Running).count(); diff --git a/libtaskmanager/activityinfo.h b/libtaskmanager/activityinfo.h index a16af38527..b658c3487e 100644 --- a/libtaskmanager/activityinfo.h +++ b/libtaskmanager/activityinfo.h @@ -31,6 +31,7 @@ class TASKMANAGER_EXPORT ActivityInfo : public QObject Q_OBJECT Q_PROPERTY(QString currentActivity READ currentActivity NOTIFY currentActivityChanged) + Q_PROPERTY(int numberOfActivities READ numberOfActivities NOTIFY numberOfActivitiesChanged) Q_PROPERTY(int numberOfRunningActivities READ numberOfRunningActivities NOTIFY numberOfRunningActivitiesChanged) public: @@ -44,6 +45,22 @@ public: **/ QString currentActivity() const; + /** + * The number of all activities defined in the session. + * + * @returns the number of activities defined in the session. + * @since 5.24 + **/ + int numberOfActivities() const; + + /** + * The list of all activities defined in the session. + * + * @returns the list of all activities defined in the session. + * @since 5.24 + **/ + Q_INVOKABLE QStringList activities() const; + /** * The number of currently-running activities defined in the session. * @@ -69,6 +86,7 @@ public: Q_SIGNALS: void currentActivityChanged() const; void numberOfRunningActivitiesChanged() const; + void numberOfActivitiesChanged() const; /** * The names of the running activities have changed. -- GitLab