1 /*
2 SPDX-FileCopyrightText: 2010-2016 Ivan Cukic <ivan.cukic(at)kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6
7 #include "consumer.h"
8 #include "consumer_p.h"
9 #include "manager_p.h"
10
11 #include "debug_p.h"
12
13 namespace KActivities
14 {
ConsumerPrivate()15 ConsumerPrivate::ConsumerPrivate()
16 : cache(ActivitiesCache::self())
17 {
18 }
19
setServiceStatus(Consumer::ServiceStatus status)20 void ConsumerPrivate::setServiceStatus(Consumer::ServiceStatus status)
21 {
22 Q_EMIT serviceStatusChanged(status);
23 }
24
Consumer(QObject * parent)25 Consumer::Consumer(QObject *parent)
26 : QObject(parent)
27 , d(new ConsumerPrivate())
28 {
29 connect(d->cache.get(), &KActivities::ActivitiesCache::currentActivityChanged, this, &Consumer::currentActivityChanged);
30 connect(d->cache.get(), &KActivities::ActivitiesCache::activityAdded, this, &Consumer::activityAdded);
31 connect(d->cache.get(), &KActivities::ActivitiesCache::activityRemoved, this, &Consumer::activityRemoved);
32 connect(d->cache.get(), &KActivities::ActivitiesCache::serviceStatusChanged, this, &Consumer::serviceStatusChanged);
33
34 connect(d->cache.get(), &ActivitiesCache::activityListChanged, this, [=]() {
35 Q_EMIT activitiesChanged(activities());
36 });
37 connect(d->cache.get(), &ActivitiesCache::runningActivityListChanged, this, [=]() {
38 Q_EMIT runningActivitiesChanged(runningActivities());
39 });
40
41 // connect(d->cache.get(), SIGNAL(activityStateChanged(QString,int)),
42 // this, SIGNAL(activityStateChanged(QString,int)));
43 }
44
~Consumer()45 Consumer::~Consumer()
46 {
47 qCDebug(KAMD_CORELIB) << "Killing the consumer";
48 }
49
currentActivity() const50 QString Consumer::currentActivity() const
51 {
52 return d->cache->m_currentActivity;
53 }
54
activities(Info::State state) const55 QStringList Consumer::activities(Info::State state) const
56 {
57 QStringList result;
58
59 result.reserve(d->cache->m_activities.size());
60
61 for (const auto &info : std::as_const(d->cache->m_activities)) {
62 if (info.state == state) {
63 result << info.id;
64 }
65 }
66
67 return result;
68 }
69
activities() const70 QStringList Consumer::activities() const
71 {
72 QStringList result;
73
74 result.reserve(d->cache->m_activities.size());
75
76 for (const auto &info : std::as_const(d->cache->m_activities)) {
77 result << info.id;
78 }
79
80 return result;
81 }
82
runningActivities() const83 QStringList Consumer::runningActivities() const
84 {
85 QStringList result;
86
87 result.reserve(d->cache->m_activities.size());
88
89 for (const auto &info : std::as_const(d->cache->m_activities)) {
90 if (info.state == Info::Running || info.state == Info::Stopping) {
91 result << info.id;
92 }
93 }
94
95 return result;
96 }
97
serviceStatus()98 Consumer::ServiceStatus Consumer::serviceStatus()
99 {
100 return d->cache->m_status;
101 }
102
103 } // namespace KActivities
104