File indexing completed on 2024-04-28 05:36:11
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org> 0003 * SPDX-FileCopyrightText: 2014 Vishesh Handa <me@vhanda.in> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 * 0007 */ 0008 0009 #ifndef _KCM_PLYMOUTH_H 0010 #define _KCM_PLYMOUTH_H 0011 0012 #include <KQuickConfigModule> 0013 #include <QDir> 0014 #include <QStandardItemModel> 0015 0016 #include <KNSCore/Entry> 0017 0018 class QQuickItem; 0019 0020 class KCMPlymouth : public KQuickConfigModule 0021 { 0022 Q_OBJECT 0023 Q_PROPERTY(QStandardItemModel *themesModel READ themesModel CONSTANT) 0024 Q_PROPERTY(QString selectedPlugin READ selectedPlugin WRITE setSelectedPlugin NOTIFY selectedPluginChanged) 0025 Q_PROPERTY(int selectedPluginIndex READ selectedPluginIndex NOTIFY selectedPluginIndexChanged) 0026 Q_PROPERTY(bool busy READ busy WRITE setBusy NOTIFY busyChanged) 0027 0028 public: 0029 enum Roles { 0030 DescriptionRole = Qt::UserRole + 1, 0031 PluginNameRole, 0032 ScreenhotRole, 0033 UninstallableRole, 0034 }; 0035 explicit KCMPlymouth(QObject *parent, const KPluginMetaData &metaData); 0036 ~KCMPlymouth() override; 0037 0038 QStandardItemModel *themesModel(); 0039 0040 QString selectedPlugin() const; 0041 void setSelectedPlugin(const QString &plugin); 0042 0043 int selectedPluginIndex() const; 0044 0045 bool busy() const; 0046 void setBusy(const bool &busy); 0047 0048 Q_INVOKABLE void reloadModel(); 0049 Q_INVOKABLE void onEntryEvent(const KNSCore::Entry &entry); 0050 Q_INVOKABLE void uninstall(const QString &plugin); 0051 0052 public Q_SLOTS: 0053 void load() override; 0054 void save() override; 0055 void defaults() override; 0056 0057 Q_SIGNALS: 0058 void selectedPluginChanged(); 0059 void selectedPluginIndexChanged(); 0060 0061 void busyChanged(); 0062 0063 void showSuccessMessage(const QString &message); 0064 void showErrorMessage(const QString &message); 0065 0066 private: 0067 QStandardItemModel *const m_model; 0068 QString m_selectedPlugin; 0069 bool m_busy = false; 0070 }; 0071 0072 #endif