PlasmaActivities

controller.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 "controller.h"
8#include "consumer_p.h"
9#include "manager_p.h"
10
11#include "utils/dbusfuture_p.h"
12
13namespace KActivities
14{
15class ControllerPrivate
16{
17};
18
19Controller::Controller(QObject *parent)
20 : Consumer(parent)
21{
22}
23
24Controller::~Controller() = default;
25
26// clang-format off
27#define CREATE_SETTER(What) \
28 QFuture<void> Controller::setActivity##What(const QString &id, \
29 const QString &value) \
30 { \
31 return Manager::isServiceRunning() \
32 ? DBusFuture::asyncCall<void>( \
33 Manager::activities(), \
34 QString::fromLatin1("SetActivity" #What), id, value) \
35 : DBusFuture::fromVoid(); \
36 }
37// clang-format on
38
39CREATE_SETTER(Name)
40CREATE_SETTER(Description)
41CREATE_SETTER(Icon)
42
43#undef CREATE_SETTER
44
46{
47 // Q_ASSERT_X(activities().contains(id), "Controller::setCurrentActivity",
48 // "You can not set a non-existent activity to be the current");
49
50 // return Manager::activities()->SetCurrentActivity(id);
51 return Manager::isServiceRunning() ? DBusFuture::asyncCall<bool>(Manager::activities(), QStringLiteral("SetCurrentActivity"), id)
52 : DBusFuture::fromValue(false);
53}
54
56{
57 Q_ASSERT_X(!name.isEmpty(), "Controller::addActivity", "The activity name can not be an empty string");
58
59 // return Manager::activities()->AddActivity(name);
60 return Manager::isServiceRunning() ? DBusFuture::asyncCall<QString>(Manager::activities(), QStringLiteral("AddActivity"), name)
61 : DBusFuture::fromValue(QString());
62}
63
65{
66 // Q_ASSERT_X(activities().contains(id), "Controller::removeActivity",
67 // "You can not remove a non-existent activity");
68
69 // Manager::activities()->RemoveActivity(id);
70 return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("RemoveActivity"), id) : DBusFuture::fromVoid();
71}
72
74{
75 // Q_ASSERT_X(activities().contains(id), "Controller::stopActivity",
76 // "You can not stop a non-existent activity");
77
78 // Manager::activities()->StopActivity(id);
79 return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("StopActivity"), id) : DBusFuture::fromVoid();
80}
81
83{
84 // Q_ASSERT_X(activities().contains(id), "Controller::startActivity",
85 // "You can not start an non-existent activity");
86
87 // Manager::activities()->StartActivity(id);
88 return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("StartActivity"), id) : DBusFuture::fromVoid();
89}
90
92{
93 return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("PreviousActivity")) : DBusFuture::fromVoid();
94}
95
97{
98 return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("NextActivity")) : DBusFuture::fromVoid();
99}
100
101} // namespace KActivities
102
103#include "moc_controller.cpp"
Contextual information can be, from the user's point of view, divided into three aspects - "who am I?...
Definition consumer.h:64
QFuture< void > startActivity(const QString &id)
Starts the activity.
QFuture< void > previousActivity()
Switches to the previous activity.
QFuture< bool > setCurrentActivity(const QString &id)
Sets the current activity.
QFuture< void > nextActivity()
Switches to the next activity.
QFuture< void > stopActivity(const QString &id)
Stops the activity.
QFuture< void > removeActivity(const QString &id)
Removes the specified activity.
QFuture< QString > addActivity(const QString &name)
Adds a new activity.
Namespace for everything in libkactivities.
bool isEmpty() const const
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.