Chatterino
BaseSettings.hpp
Go to the documentation of this file.
1 #ifndef AB_SETTINGS_H
2 #define AB_SETTINGS_H
3 
5 
6 #include <rapidjson/document.h>
7 #include <QString>
8 #include <pajlada/settings/settingdata.hpp>
9 
10 #include <memory>
11 
12 #ifdef AB_CUSTOM_SETTINGS
13 # define AB_SETTINGS_CLASS ABSettings
14 #else
15 # define AB_SETTINGS_CLASS Settings
16 #endif
17 
18 namespace chatterino {
19 
20 class Settings;
21 
23  std::weak_ptr<pajlada::Settings::SettingData> setting);
24 
26 {
27 public:
28  AB_SETTINGS_CLASS(const QString &settingsDirectory);
29 
30  void saveSnapshot();
31  void restoreSnapshot();
32 
34 
35  FloatSetting uiScale = {"/appearance/uiScale2", 1};
36  BoolSetting windowTopMost = {"/appearance/windowAlwaysOnTop", false};
37 
38  float getClampedUiScale() const;
39  void setClampedUiScale(float value);
40 
41 private:
42  std::unique_ptr<rapidjson::Document> snapshot_;
43 };
44 
47 
48 } // namespace chatterino
49 
50 #ifdef CHATTERINO
51 # include "singletons/Settings.hpp"
52 #endif
53 #endif
Definition: Application.cpp:48
AB_SETTINGS_CLASS(const QString &settingsDirectory)
Definition: BaseSettings.cpp:19
Definition: BaseSettings.hpp:25
static AB_SETTINGS_CLASS * instance
Definition: BaseSettings.hpp:33
Settings which are availlable for reading and writing on the gui thread.
Definition: Settings.hpp:78
Settings * getSettings()
Definition: BaseSettings.cpp:110
AB_SETTINGS_CLASS * getABSettings()
Definition: BaseSettings.cpp:121
void saveSnapshot()
Definition: BaseSettings.cpp:36
FloatSetting uiScale
Definition: BaseSettings.hpp:35
void restoreSnapshot()
Definition: BaseSettings.cpp:66
void setClampedUiScale(float value)
Definition: BaseSettings.cpp:104
void _actuallyRegisterSetting(std::weak_ptr< pajlada::Settings::SettingData > setting)
Definition: BaseSettings.cpp:13
float getClampedUiScale() const
Definition: BaseSettings.cpp:99
BoolSetting windowTopMost
Definition: BaseSettings.hpp:36