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;
#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(); \
}
CREATE_SETTER(Name)
CREATE_SETTER(Description)
CREATE_SETTER(Icon)
#undef CREATE_SETTER
QFuture<bool> Controller::setCurrentActivity(const QString &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::isServiceRunning() ? DBusFuture::asyncCall<QString>(Manager::activities(), QStringLiteral("AddActivity"), name)
: DBusFuture::fromValue(QString());
}
QFuture<void> Controller::removeActivity(const QString &id)
{
return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("RemoveActivity"), id) : DBusFuture::fromVoid();
}
QFuture<void> Controller::stopActivity(const QString &id)
{
return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("StopActivity"), id) : DBusFuture::fromVoid();
}
QFuture<void> Controller::startActivity(const QString &id)
{
return Manager::isServiceRunning() ? DBusFuture::asyncCall<void>(Manager::activities(), QStringLiteral("StartActivity"), 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();
}
}
#include "moc_controller.cpp"