File indexing completed on 2025-01-26 05:06:07

0001 /*
0002     SPDX-FileCopyrightText: 2012, 2013, 2014, 2015 Ivan Cukic <ivan.cukic(at)kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KACTIVITIES_IMPORTS_ACTIVITY_INFO_H
0008 #define KACTIVITIES_IMPORTS_ACTIVITY_INFO_H
0009 
0010 // Qt
0011 #include <QObject>
0012 
0013 // STL
0014 #include <memory>
0015 
0016 // Local
0017 #include <lib/controller.h>
0018 #include <lib/info.h>
0019 
0020 namespace KActivities
0021 {
0022 namespace Imports
0023 {
0024 /**
0025  * ActivityInfo
0026  */
0027 
0028 class ActivityInfo : public QObject
0029 {
0030     Q_OBJECT
0031 
0032     /**
0033      * Unique identifier of the activity
0034      */
0035     Q_PROPERTY(QString activityId READ activityId WRITE setActivityId NOTIFY activityIdChanged)
0036 
0037     /**
0038      * Name of the activity
0039      */
0040     Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
0041 
0042     /**
0043      * Name of the activity
0044      */
0045     Q_PROPERTY(QString description READ description WRITE setDescription NOTIFY descriptionChanged)
0046 
0047     /**
0048      * Activity icon
0049      */
0050     Q_PROPERTY(QString icon READ icon WRITE setIcon NOTIFY iconChanged)
0051 
0052     /**
0053      * Is the activity a valid one - does it exist?
0054      */
0055     Q_PROPERTY(bool valid READ valid NOTIFY validChanged)
0056 
0057 public:
0058     explicit ActivityInfo(QObject *parent = nullptr);
0059     ~ActivityInfo() override;
0060 
0061 public Q_SLOTS:
0062     void setActivityId(const QString &id);
0063     QString activityId() const;
0064 
0065     void setName(const QString &name);
0066     QString name() const;
0067 
0068     void setDescription(const QString &description);
0069     QString description() const;
0070 
0071     void setIcon(const QString &icon);
0072     QString icon() const;
0073 
0074     bool valid() const;
0075 
0076 Q_SIGNALS:
0077     void activityIdChanged(const QString &id);
0078     void nameChanged(const QString &name);
0079     void descriptionChanged(const QString &description);
0080     void iconChanged(const QString &icon);
0081     void validChanged(bool valid);
0082 
0083 private Q_SLOTS:
0084     void setCurrentActivity(const QString &id);
0085 
0086 private:
0087     void setIdInternal(const QString &id);
0088 
0089     KActivities::Controller m_service;
0090     std::unique_ptr<KActivities::Info> m_info;
0091     bool m_showCurrentActivity;
0092 };
0093 
0094 } // namespace Imports
0095 } // namespace KActivities
0096 
0097 #endif // KACTIVITIES_IMPORTS_ACTIVITY_INFO_H