File indexing completed on 2024-05-12 05:38:24
0001 /* 0002 SPDX-FileCopyrightText: 2010 Aaron Seigo <aseigo@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QJSValue> 0010 #include <QObject> 0011 #include <QWeakPointer> 0012 0013 #include <kconfiggroup.h> 0014 0015 namespace Plasma 0016 { 0017 class Applet; 0018 } // namespace Plasma 0019 0020 namespace WorkspaceScripting 0021 { 0022 class ScriptEngine; 0023 0024 class Applet : public QObject 0025 { 0026 Q_OBJECT 0027 Q_PROPERTY(QStringList currentConfigGroup WRITE setCurrentConfigGroup READ currentConfigGroup) 0028 0029 public: 0030 explicit Applet(ScriptEngine *parent); 0031 ~Applet() override; 0032 0033 QStringList configKeys() const; 0034 QStringList configGroups() const; 0035 0036 void setCurrentConfigGroup(const QStringList &groupNames); 0037 QStringList currentConfigGroup() const; 0038 0039 QStringList globalConfigKeys() const; 0040 QStringList globalConfigGroups() const; 0041 0042 void setCurrentGlobalConfigGroup(const QStringList &groupNames); 0043 QStringList currentGlobalConfigGroup() const; 0044 0045 QString version() const; 0046 0047 void setLocked(bool locked); 0048 bool locked() const; 0049 0050 virtual Plasma::Applet *applet() const; 0051 0052 ScriptEngine *engine() const; 0053 0054 protected: 0055 void reloadConfigIfNeeded(); 0056 0057 public Q_SLOTS: 0058 virtual QVariant readConfig(const QString &key, const QJSValue &def = QString()) const; 0059 virtual void writeConfig(const QString &key, const QJSValue &value); 0060 virtual QVariant readGlobalConfig(const QString &key, const QJSValue &def = QString()) const; 0061 virtual void writeGlobalConfig(const QString &key, const QJSValue &value); 0062 virtual void reloadConfig(); 0063 0064 private: 0065 class Private; 0066 Private *const d; 0067 }; 0068 0069 }