File indexing completed on 2024-04-28 09:31:27

0001 /*
0002     SPDX-FileCopyrightText: 2013 Reza Fatahilah Shah <rshah0385@kireihana.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef SDDMKCM_H
0007 #define SDDMKCM_H
0008 
0009 #include "sddmsettings.h"
0010 #include "themesmodel.h"
0011 #include <KQuickManagedConfigModule>
0012 class ThemeConfig;
0013 class AdvancedConfig;
0014 class SddmData;
0015 
0016 class SddmKcm : public KQuickManagedConfigModule
0017 {
0018     Q_OBJECT
0019     Q_PROPERTY(SddmSettings *sddmSettings READ sddmSettings CONSTANT)
0020     Q_PROPERTY(ThemesModel *themesModel READ themesModel CONSTANT)
0021 public:
0022     explicit SddmKcm(QObject *parent, const KPluginMetaData &metaData);
0023     ~SddmKcm() override;
0024 
0025     Q_INVOKABLE static QString toLocalFile(const QUrl &url);
0026     Q_INVOKABLE void removeTheme(const QModelIndex &index);
0027     Q_INVOKABLE void installTheme(const QUrl &url);
0028     Q_INVOKABLE void synchronizeSettings();
0029     Q_INVOKABLE void resetSyncronizedSettings();
0030     Q_INVOKABLE bool KDEWalletAvailable();
0031     Q_INVOKABLE void openKDEWallet();
0032 
0033     SddmSettings *sddmSettings() const;
0034     ThemesModel *themesModel() const;
0035 public Q_SLOTS:
0036     void save() override;
0037 Q_SIGNALS:
0038     void errorOccured(const QString &untranslatedMessage);
0039     void syncSuccessful();
0040     void resetSyncedDataSuccessful();
0041 
0042 private:
0043     SddmData *m_data;
0044     ThemesModel *m_themesModel;
0045 };
0046 
0047 #endif // SDDMKCM_H