cutelyst 5.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
appsettings.cpp
1/*
2 * SPDX-FileCopyrightText: (C) 2024 Daniel Nicoletti <dantti12@gmail.com>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#include "appsettings.h"
6
7using namespace Cutelyst;
8
9AppSettings &AppSettings::instance()
10{
11 static thread_local AppSettings settings;
12 return settings;
13}
14
15QVariantHash AppSettings::values()
16{
17 return instance().m_data;
18}
19
20void AppSettings::setValue(const QString &key, const QVariant &value)
21{
22 instance().storeData(key, value);
23}
24
25void AppSettings::setDefaultValue(const QString &key, const QVariant &value)
26{
27 instance().storeDefaultData(key, value);
28}
29
31{
32 return instance().m_data.value(key);
33}
34
35void AppSettings::storeData(const QString &key, const QVariant &value)
36{
37 auto it = m_data.find(key);
38 if (it != m_data.end()) {
39 if (it.value() == value) {
40 return;
41 }
42 *it = value;
43 } else {
44 m_data.insert(key, value);
45 }
46 Q_EMIT valueChanged(key, value);
47}
48
49void AppSettings::storeDefaultData(const QString &key, const QVariant &value)
50{
51 auto it = m_data.find(key);
52 if (it == m_data.end()) {
53 m_data.insert(key, value);
54 Q_EMIT valueChanged(key, value);
55 }
56}
57
58#include "moc_appsettings.cpp"
The AppSettings class.
Definition appsettings.h:23
static QVariant value(const QString &key)
static void setValue(const QString &key, const QVariant &value)
static void setDefaultValue(const QString &key, const QVariant &value)
static QVariantHash values()
The Cutelyst namespace holds all public Cutelyst API.
Q_EMITQ_EMIT