File indexing completed on 2024-05-12 05:35:37
0001 /* 0002 * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic <ivan.cukic@kde.org> 0003 * SPDX-FileCopyrightText: 2023 Ismael Asensio <isma.af@gmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0006 */ 0007 0008 #pragma once 0009 0010 #include <PlasmaActivities/Controller> 0011 0012 #include <QKeySequence> 0013 #include <QtQml/QQmlModuleRegistration> 0014 0015 class ActivityConfig : public QObject 0016 { 0017 Q_OBJECT 0018 0019 Q_PROPERTY(QString activityId READ activityId WRITE setActivityId NOTIFY activityIdChanged) 0020 Q_PROPERTY(QString name MEMBER m_name NOTIFY infoChanged) 0021 Q_PROPERTY(QString description MEMBER m_description NOTIFY infoChanged) 0022 Q_PROPERTY(QString iconName MEMBER m_iconName NOTIFY infoChanged) 0023 Q_PROPERTY(bool isPrivate MEMBER m_private NOTIFY infoChanged) 0024 Q_PROPERTY(QKeySequence shortcut MEMBER m_shortcut NOTIFY infoChanged) 0025 Q_PROPERTY(bool isSaveNeeded READ isSaveNeeded NOTIFY infoChanged) 0026 Q_PROPERTY(bool inhibitScreen MEMBER m_inhibitScreen NOTIFY infoChanged) 0027 Q_PROPERTY(bool inhibitSleep MEMBER m_inhibitSleep NOTIFY infoChanged) 0028 0029 public: 0030 explicit ActivityConfig(QObject *parent = nullptr); 0031 ~ActivityConfig(); 0032 0033 public: 0034 QString activityId() const; 0035 void setActivityId(const QString &activityId); 0036 0037 bool isSaveNeeded(); 0038 0039 Q_INVOKABLE void save(); 0040 0041 private: 0042 void load(); 0043 void reset(); 0044 void createActivity(); 0045 0046 Q_SIGNALS: 0047 void activityIdChanged(); 0048 void infoChanged(); 0049 0050 private: 0051 QString m_activityId; 0052 0053 QString m_name; 0054 QString m_description; 0055 QString m_iconName; 0056 bool m_private; 0057 QKeySequence m_shortcut; 0058 bool m_inhibitScreen = false; 0059 bool m_savedInhibitScreen = false; 0060 bool m_inhibitSleep = false; 0061 bool m_savedInhibitSleep = false; 0062 0063 KActivities::Controller m_activities; 0064 bool m_savedPrivate = false; 0065 };