/* * Copyright (C) 2021-2025 QuasarApp. * Distributed under the lgplv3 software license, see the accompanying * Everyone is permitted to copy and distribute verbatim copies * of this license document, but changing it is not allowed. */ #include "settings.h" #include #include #include namespace QuasarAppUtils { Settings::Settings() { auto name = QCoreApplication::applicationName(); auto company = QCoreApplication::organizationName(); if (name.isEmpty()) { name = "QuasarAppUtils"; } if (company.isEmpty()) { company = "QuasarApp"; } _settings = new QSettings(QSettings::NativeFormat, QSettings::Scope::UserScope, company, name); } void Settings::syncImplementation() { return _settings->sync(); } QVariant Settings::getValueImplementation(const QString &key, const QVariant &def) { if (isBool(key)) { return _settings->value(key, def).toBool(); } return _settings->value(key, def); } void Settings::setValueImplementation(const QString key, const QVariant &value) { return _settings->setValue(key, value); } bool Settings::ignoreToRest(const QString &) const { return false; } QHash Settings::defaultSettings() { return {}; } bool Settings::isBool(const QString &) const { return false; } const QSet &Settings::boolOptions() const { return _boolOptions; } void Settings::setBoolOptions(const QSet &newBoolOptions) { _boolOptions = newBoolOptions; } bool Settings::initService() { return ISettings::initService(std::make_unique()); } ISettings *Settings::autoInstance() { if (auto result = instance()) { return result; } Settings::initService(); return ISettings::instance(); } }