File indexing completed on 2024-05-05 05:30:25
0001 /* 0002 SPDX-FileCopyrightText: 2019 Roman Gilg <subdiff@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include <kscreen/config.h> 0009 0010 #include <QOrientationReading> 0011 0012 #include <memory> 0013 0014 class ControlConfig; 0015 0016 class Config : public QObject 0017 { 0018 Q_OBJECT 0019 public: 0020 explicit Config(KScreen::ConfigPtr config, QObject *parent = nullptr); 0021 ~Config() = default; 0022 0023 QString id() const; 0024 0025 bool fileExists() const; 0026 std::unique_ptr<Config> readFile(); 0027 std::unique_ptr<Config> readOpenLidFile(); 0028 bool writeFile(); 0029 bool writeOpenLidFile(); 0030 static QString configsDirPath(); 0031 0032 KScreen::ConfigPtr data() const 0033 { 0034 return m_data; 0035 } 0036 0037 void activateControlWatching(); 0038 void log(); 0039 0040 void setValidityFlags(KScreen::Config::ValidityFlags flags) 0041 { 0042 m_validityFlags = flags; 0043 } 0044 0045 bool canBeApplied() const; 0046 0047 Q_SIGNALS: 0048 void controlChanged(); 0049 0050 private: 0051 friend class TestConfig; 0052 0053 QString filePath() const; 0054 std::unique_ptr<Config> readFile(const QString &fileName); 0055 bool writeFile(const QString &filePath); 0056 0057 bool canBeApplied(KScreen::ConfigPtr config) const; 0058 0059 KScreen::ConfigPtr m_data; 0060 KScreen::Config::ValidityFlags m_validityFlags; 0061 ControlConfig *m_control; 0062 0063 static QString s_configsDirName; 0064 static QString s_fixedConfigFileName; 0065 };