File indexing completed on 2024-05-12 05:36:15
0001 // SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <QObject> 0007 0008 #include <KConfigGroup> 0009 #include <KConfigWatcher> 0010 #include <KSharedConfig> 0011 0012 class Settings : public QObject 0013 { 0014 Q_OBJECT 0015 0016 public: 0017 Settings(QObject *parent = nullptr); 0018 static Settings &self(); 0019 0020 // apply the configuration 0021 void applyConfiguration(); 0022 0023 private: 0024 // loads the saved configuration, so it can be restored on desktop 0025 void loadSavedConfiguration(); 0026 0027 // applies our mobile configuration 0028 void applyMobileConfiguration(); 0029 0030 void writeKeys(const QString &fileName, KSharedConfig::Ptr &config, const QMap<QString, QMap<QString, QVariant>> &settings, bool overwriteOnlyIfEmpty); 0031 void loadKeys(const QString &fileName, KSharedConfig::Ptr &config, const QMap<QString, QMap<QString, QVariant>> &settings); 0032 void saveConfigSetting(const QString &fileName, const QString &group, const QString &key, const QVariant value); 0033 const QString loadSavedConfigSetting(KSharedConfig::Ptr &config, const QString &fileName, const QString &group, const QString &key, bool write = true); 0034 0035 void reloadKWinConfig(); 0036 0037 // whether this is Plasma Mobile 0038 bool m_isMobilePlatform; 0039 0040 KSharedConfig::Ptr m_mobileConfig; 0041 KSharedConfig::Ptr m_kwinrcConfig; 0042 KSharedConfig::Ptr m_appBlacklistConfig; 0043 KSharedConfig::Ptr m_kdeglobalsConfig; 0044 0045 KConfigWatcher::Ptr m_configWatcher; 0046 };