Files
RedBear-OS/local/recipes/kde/kf6-plasma-activities/source/src/lib/controller.cpp
T

86 lines
3.0 KiB
C++

/*
SPDX-FileCopyrightText: 2010-2016 Ivan Cukic <ivan.cukic(at)kde.org>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include "controller.h"
#include "consumer_p.h"
#include "manager_p.h"
#include "utils/dbusfuture_p.h"
namespace KActivities
{
class ControllerPrivate
{
};
Controller::Controller(QObject *parent)
: Consumer(parent)
{
}
Controller::~Controller() = default;
// clang-format off
#define CREATE_SETTER(What) \
QFuture<void> Controller::setActivity##What(const QString &id, \
const QString &value) \
{ \
return Manager::isServiceRunning() \
? DBusFuture::asyncCall<void>( \
Manager::activities(), \
QString::fromLatin1("SetActivity" #What), id, value) \
: DBusFuture::fromVoid(); \
}
// clang-format on
CREATE_SETTER(Name)
CREATE_SETTER(Description)
CREATE_SETTER(Icon)
#undef CREATE_SETTER
QFuture<bool> Controller::setCurrentActivity(const QString &id)
{
// Q_ASSERT_X(activities().contains(id), "Controller::setCurrentActivity",
// "You can not set a non-existent activity to be the current");
// return Manager::activities()->SetCurrentActivity(id);
return Manager::isServiceRunning() ? DBusFuture::asyncCall<bool>(Manager::activities(), QStringLiteral("SetCurrentActivity"), id)
: DBusFuture::fromValue(false);
}
QFuture<QString> Controller::addActivity(const QString &name)
{
Q_ASSERT_X(!name.isEmpty(), "Controller::addActivity", "The activity name can not be an empty string");
// return Manager::activities()->AddActivity(name);
return Manager::isServiceRunning() ? DBusFuture::asyncCall<QString>(Manager::activities(), QStringLiteral("AddActivity"), name)
: DBusFuture::fromValue(QString());
}
QFuture<void> Controller::removeActivity(const QString &id)
{
// Q_ASSERT_X(activities().contains(id), "Controller::removeActivity",
// "You can not remove a non-existent activity");
// Manager::activities()->RemoveActivity(id);
return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("RemoveActivity"), id) : DBusFuture::fromVoid();
}
QFuture<void> Controller::previousActivity()
{
return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("PreviousActivity")) : DBusFuture::fromVoid();
}
QFuture<void> Controller::nextActivity()
{
return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("NextActivity")) : DBusFuture::fromVoid();
}
} // namespace KActivities
#include "moc_controller.cpp"