PlasmaActivities

consumer.cpp
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
11namespace KActivities
12{
13ConsumerPrivate::ConsumerPrivate()
14 : cache(ActivitiesCache::self())
15{
16}
17
18void ConsumerPrivate::setServiceStatus(Consumer::ServiceStatus status)
19{
20 Q_EMIT serviceStatusChanged(status);
21}
22
23Consumer::Consumer(QObject *parent)
24 : QObject(parent)
25 , d(new ConsumerPrivate())
26{
27 connect(d->cache.get(), &KActivities::ActivitiesCache::currentActivityChanged, this, &Consumer::currentActivityChanged);
28 connect(d->cache.get(), &KActivities::ActivitiesCache::activityAdded, this, &Consumer::activityAdded);
29 connect(d->cache.get(), &KActivities::ActivitiesCache::activityRemoved, this, &Consumer::activityRemoved);
30 connect(d->cache.get(), &KActivities::ActivitiesCache::serviceStatusChanged, this, &Consumer::serviceStatusChanged);
31
32 connect(d->cache.get(), &ActivitiesCache::activityListChanged, this, [=, this]() {
33 Q_EMIT activitiesChanged(activities());
34 });
35 connect(d->cache.get(), &ActivitiesCache::runningActivityListChanged, this, [=, this]() {
36 Q_EMIT runningActivitiesChanged(runningActivities());
37 });
38
39 // connect(d->cache.get(), SIGNAL(activityStateChanged(QString,int)),
40 // this, SIGNAL(activityStateChanged(QString,int)));
41}
42
43Consumer::~Consumer() = default;
44
45QString Consumer::currentActivity() const
46{
47 return d->cache->m_currentActivity;
48}
49
50QStringList Consumer::activities(Info::State state) const
51{
52 QStringList result;
53
54 result.reserve(d->cache->m_activities.size());
55
56 for (const auto &info : std::as_const(d->cache->m_activities)) {
57 if (info.state == state) {
58 result << info.id;
59 }
60 }
61
62 return result;
63}
64
65QStringList Consumer::activities() const
66{
67 QStringList result;
68
69 result.reserve(d->cache->m_activities.size());
70
71 for (const auto &info : std::as_const(d->cache->m_activities)) {
72 result << info.id;
73 }
74
75 return result;
76}
77
78QStringList Consumer::runningActivities() const
79{
80 QStringList result;
81
82 result.reserve(d->cache->m_activities.size());
83
84 for (const auto &info : std::as_const(d->cache->m_activities)) {
85 if (info.state == Info::Running || info.state == Info::Stopping) {
86 result << info.id;
87 }
88 }
89
90 return result;
91}
92
93Consumer::ServiceStatus Consumer::serviceStatus()
94{
95 return d->cache->m_status;
96}
97
98} // namespace KActivities
99
100#include "moc_consumer.cpp"
101#include "moc_consumer_p.cpp"
ServiceStatus
Different states of the activities service.
Definition consumer.h:76
State
State of the activity.
Definition info.h:90
@ Running
Activity is running.
Definition info.h:93
@ Stopping
Activity is begin started.
Definition info.h:96
Q_SCRIPTABLE CaptureState status()
Namespace for everything in libkactivities.
void reserve(qsizetype size)
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 12:01:06 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.