SPDX-FileCopyrightText: 2012, 2013, 2014, 2015 Ivan Cukic <ivan.cukic(at)kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "activityinfo.h"
namespace KActivities
{
namespace Imports
{
ActivityInfo::ActivityInfo(QObject *parent)
: QObject(parent)
, m_showCurrentActivity(false)
{
connect(&m_service, &KActivities::Controller::currentActivityChanged, this, &ActivityInfo::setCurrentActivity);
}
ActivityInfo::~ActivityInfo()
{
}
void ActivityInfo::setCurrentActivity(const QString &id)
{
if (!m_showCurrentActivity) {
return;
}
setIdInternal(id);
Q_EMIT nameChanged(m_info->name());
Q_EMIT descriptionChanged(m_info->description());
Q_EMIT iconChanged(m_info->icon());
}
void ActivityInfo::setActivityId(const QString &id)
{
m_showCurrentActivity = (id == QLatin1String(":current"));
setIdInternal(m_showCurrentActivity ? m_service.currentActivity() : id);
}
void ActivityInfo::setIdInternal(const QString &id)
{
using namespace KActivities;
m_info.reset(new KActivities::Info(id));
auto ptr = m_info.get();
connect(ptr, &Info::nameChanged, this, &ActivityInfo::nameChanged);
connect(ptr, &Info::descriptionChanged, this, &ActivityInfo::descriptionChanged);
connect(ptr, &Info::iconChanged, this, &ActivityInfo::iconChanged);
}
#define CREATE_GETTER_AND_SETTER(WHAT, What) \
QString ActivityInfo::What() const \
{ \
return m_info ? m_info->What() : QString(); \
} \
\
void ActivityInfo::set##WHAT(const QString &value) \
{ \
if (!m_info) \
return; \
\
m_service.setActivity##WHAT(m_info->id(), value); \
}
CREATE_GETTER_AND_SETTER(Name, name)
CREATE_GETTER_AND_SETTER(Description, description)
CREATE_GETTER_AND_SETTER(Icon, icon)
#undef CREATE_GETTER_AND_SETTER
QString ActivityInfo::activityId() const
{
return m_info ? m_info->id() : QString();
}
bool ActivityInfo::valid() const
{
return true;
}
}
}
#include "moc_activityinfo.cpp"