File indexing completed on 2024-05-12 16:59:20
0001 /* 0002 * SPDX-FileCopyrightText: 2014-2016 Ivan Cukic <ivan.cukic@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef MODULE_H 0008 #define MODULE_H 0009 0010 #include "kactivitymanagerd_plugin_export.h" 0011 0012 // Qt 0013 #include <QDBusVariant> 0014 #include <QObject> 0015 #include <QString> 0016 #include <QStringList> 0017 0018 // Utils 0019 #include <utils/d_ptr.h> 0020 0021 /** 0022 * Module 0023 */ 0024 class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 explicit Module(const QString &name, QObject *parent = nullptr); 0030 ~Module() override; 0031 0032 static QObject *get(const QString &name); 0033 static QHash<QString, QObject *> &get(); 0034 0035 virtual bool isFeatureOperational(const QStringList &feature) const; 0036 virtual bool isFeatureEnabled(const QStringList &feature) const; 0037 virtual void setFeatureEnabled(const QStringList &feature, bool value); 0038 virtual QStringList listFeatures(const QStringList &feature) const; 0039 0040 virtual QDBusVariant featureValue(const QStringList &property) const; 0041 virtual void setFeatureValue(const QStringList &property, const QDBusVariant &value); 0042 0043 private: 0044 D_PTR; 0045 }; 0046 0047 #endif // MODULE_H