4 #include <QApplication>
5 #include <QDesktopWidget>
10 SettingsManager* SettingsManager:: inst =
nullptr;
20 SettingsManager::SettingsManager(
QObject* parent)
35 if (mDefaultSettingsFile->
contains(tag))
38 if (mUserSettingsFile->
contains(tag))
55 if (item->value() != item->defaultValue())
56 mUserSettingsFile->
setValue(item->tag(), item->value());
58 mUserSettingsFile->
remove(item->tag());
60 mUserSettingsFile->
sync();
65 return mDefaultSettingsFile->
value(tag);
70 return mUserSettingsFile->
value(tag);
81 return mUserSettingsFile->
value(
"MainWindow/size", rect.
size()).
toSize();
86 mUserSettingsFile->
setValue(
"MainWindow/position", pos);
87 mUserSettingsFile->
setValue(
"MainWindow/size", size);
88 mUserSettingsFile->
sync();
108 mUserSettingsFile->
sync();
The interface for the logical part of a setting.
virtual QString tag() const
virtual void restoreFromSettings(const QVariant &val)
virtual void setDefaultValue(const QVariant &dv)=0
Manages and persists the settings on the lowest level.
void saveLoggerSettings(const LoggerSettings &settings)
void registerSetting(SettingsItem *item)
QVariant defaultValue(const QString &tag) const
void mainWindowSaveGeometry(const QPoint &pos, const QSize &size)
QVariant settingsValue(const QString &tag) const
void persistUserSettings()
LoggerSettings loggerSettings() const
QList< SettingsItem * > mSettingsList
void handleItemDestroyed(QObject *obj)
static SettingsManager * instance()
QSize mainWindowSize() const
QPoint mainWindowPosition() const
std::filesystem::path get_config_directory()
std::filesystem::path get_user_config_directory()
QDesktopWidget * desktop()
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void destroyed(QObject *obj)
bool contains(const QString &key) const const
void remove(const QString &key)
void setValue(const QString &key, const QVariant &value)
QVariant value(const QString &key, const QVariant &defaultValue) const const
QString fromStdString(const std::string &str)
bool toBool() const const
QPoint toPoint() const const
QSize toSize() const const