/* SPDX-FileCopyrightText: 2012, 2013, 2014, 2015 Ivan Cukic SPDX-License-Identifier: GPL-2.0-or-later */ // Self #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; // We are killing the old info object, if any 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); } // clang-format off #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); \ } // clang-format on 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; } } // namespace Imports } // namespace KActivities #include "moc_activityinfo.cpp"