cutelyst  5.0.1
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 
7 using namespace Cutelyst;
8 
9 AppSettings &AppSettings::instance()
10 {
11  static thread_local AppSettings settings;
12  return settings;
13 }
14 
15 QVariantHash AppSettings::values()
16 {
17  return instance().m_data;
18 }
19 
20 void AppSettings::setValue(const QString &key, const QVariant &value)
21 {
22  instance().storeData(key, value);
23 }
24 
25 void 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 
35 void 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 
49 void 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:22
static QVariantHash values()
Definition: appsettings.cpp:15
static QVariant value(const QString &key)
Definition: appsettings.cpp:30
The Cutelyst namespace holds all public Cutelyst API.
static void setValue(const QString &key, const QVariant &value)
Definition: appsettings.cpp:20
Q_EMITQ_EMIT
static void setDefaultValue(const QString &key, const QVariant &value)
Definition: appsettings.cpp:25