QuasarAppLib 1.0.530.c9fba11
settings.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021-2026 QuasarApp.
3 * Distributed under the lgplv3 software license, see the accompanying
4 * Everyone is permitted to copy and distribute verbatim copies
5 * of this license document, but changing it is not allowed.
6*/
7
8
9#include "settings.h"
10#include <QSettings>
11#include <QCoreApplication>
12#include <QDebug>
13
14namespace QuasarAppUtils {
15
16Settings::Settings(QSettings::Format format) {
17 auto name = QCoreApplication::applicationName();
18 auto company = QCoreApplication::organizationName();
19 if (name.isEmpty()) {
20 name = "QuasarAppUtils";
21 }
22
23 if (company.isEmpty()) {
24 company = "QuasarApp";
25 }
26
27 _settings = new QSettings(format, QSettings::Scope::UserScope, company, name);
28}
29
31 return _settings->sync();
32}
33
34QVariant Settings::getValueImplementation(const QString &key, const QVariant &def) {
35 if (isBool(key)) {
36 return _settings->value(key, def).toBool();
37 }
38
39 return _settings->value(key, def);
40}
41
42void Settings::setValueImplementation(const QString key, const QVariant &value) {
43 return _settings->setValue(key, value);
44}
45
46bool Settings::ignoreToRest(const QString &) const {
47 return false;
48}
49
50QHash<QString, QVariant> Settings::defaultSettings() {
51 return {};
52}
53
54bool Settings::isBool(const QString &) const {
55 return false;
56}
57
58const QSet<QString> &Settings::boolOptions() const
59{
60 return _boolOptions;
61}
62
63void Settings::setBoolOptions(const QSet<QString> &newBoolOptions)
64{
65 _boolOptions = newBoolOptions;
66}
67
69 return ISettings::initService(std::make_unique<Settings>());
70}
71
73 if (auto result = instance()) {
74 return result;
75 }
76
78 return ISettings::instance();
79}
80
81}
static ISettings * instance()
instance This method returns pointer to current settings object.
Definition isettings.cpp:43
ISettings(SettingsSaveMode mode=SettingsSaveMode::Auto)
Definition isettings.cpp:15
static std::unique_ptr< ISettings > & initService()
Definition qaservice.h:85
bool ignoreToRest(const QString &) const override
ignoreToRest This method checks if the key is a boolean option.
Definition settings.cpp:46
const QSet< QString > & boolOptions() const
boolOptions returns current map with keys that has a bool type.
Definition settings.cpp:58
Settings(QSettings::Format format=QSettings::IniFormat)
Settings This is the main constructor of the Settings object.
Definition settings.cpp:16
static bool initService()
initService This method initialize default object of the QuasarAppUtils::Settings type.
Definition settings.cpp:68
QVariant getValueImplementation(const QString &key, const QVariant &def) override
getValueImplementation This method returns the value of the key setting from the QSettings backend.
Definition settings.cpp:34
virtual bool isBool(const QString &key) const
isBool This method should be return true if the key's type is bool. This is needed because QVariant w...
Definition settings.cpp:54
QHash< QString, QVariant > defaultSettings() override
defaultSettings This method returns the default map of the settings and their values....
Definition settings.cpp:50
void setBoolOptions(const QSet< QString > &newBoolOptions)
setBoolOptions This method sets new map of the boolean options.
Definition settings.cpp:63
static ISettings * autoInstance()
autoInstance This method returns the default object of the QuasarAppUtils::Settings type and if it wa...
Definition settings.cpp:72
void setValueImplementation(const QString key, const QVariant &value) override
setValueImplementation This method sets a new value for the key setting in the QSettings backend.
Definition settings.cpp:42
void syncImplementation() override
syncImplementation This method saves all settings data to the hard disk. This is the QSettings based ...
Definition settings.cpp:30
The QuasarAppUtils namespace contains the base functions for all applications of the QuasarApp group....