mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-21 22:24:07 +01:00
53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
|
#ifndef AB_SETTINGS_H
|
||
|
#define AB_SETTINGS_H
|
||
|
|
||
|
#include <rapidjson/document.h>
|
||
|
#include <QString>
|
||
|
#include <memory>
|
||
|
#include <pajlada/settings/settingdata.hpp>
|
||
|
|
||
|
#include "common/ChatterinoSetting.hpp"
|
||
|
|
||
|
#ifdef AB_CUSTOM_SETTINGS
|
||
|
# define AB_SETTINGS_CLASS ABSettings
|
||
|
#else
|
||
|
# define AB_SETTINGS_CLASS Settings
|
||
|
#endif
|
||
|
|
||
|
namespace AB_NAMESPACE {
|
||
|
|
||
|
class Settings;
|
||
|
|
||
|
void _actuallyRegisterSetting(
|
||
|
std::weak_ptr<pajlada::Settings::SettingData> setting);
|
||
|
|
||
|
class AB_SETTINGS_CLASS
|
||
|
{
|
||
|
public:
|
||
|
AB_SETTINGS_CLASS(const QString &settingsDirectory);
|
||
|
|
||
|
void saveSnapshot();
|
||
|
void restoreSnapshot();
|
||
|
|
||
|
static AB_SETTINGS_CLASS *instance;
|
||
|
|
||
|
FloatSetting uiScale = {"/appearance/uiScale2", 1};
|
||
|
BoolSetting windowTopMost = {"/appearance/windowAlwaysOnTop", false};
|
||
|
|
||
|
float getClampedUiScale() const;
|
||
|
void setClampedUiScale(float value);
|
||
|
|
||
|
private:
|
||
|
std::unique_ptr<rapidjson::Document> snapshot_;
|
||
|
};
|
||
|
|
||
|
Settings *getSettings();
|
||
|
AB_SETTINGS_CLASS *getABSettings();
|
||
|
|
||
|
} // namespace AB_NAMESPACE
|
||
|
|
||
|
#ifdef CHATTERINO
|
||
|
# include "singletons/Settings.hpp"
|
||
|
#endif
|
||
|
#endif
|