10#include <QtCore/QObject>
11#include <QtCore/QSettings>
12#include <QtCore/QString>
13#include <QtCore/QStringList>
14#include <QtCore/QVariant>
20class QxSettingsPrivate;
42 explicit QxSettings(
const QString &organization,
const QString &application = QString(), QObject *parent =
nullptr);
44 explicit QxSettings(
const QString &
fileName, QSettings::Format format, QObject *parent =
nullptr);
48 QSettings *settings()
const;
53 void beginGroup(
const QString &prefix);
55 QString group()
const;
58 bool contains(
const QString &key)
const;
59 QVariant value(
const QString &key,
const QVariant &defaultValue = QVariant())
const;
60 QString stringValue(
const QString &key,
const QString &defaultValue = QString())
const;
61 int intValue(
const QString &key,
int defaultValue = 0)
const;
62 bool boolValue(
const QString &key,
bool defaultValue =
false)
const;
63 QStringList stringListValue(
const QString &key,
const QStringList &defaultValue = QStringList())
const;
64 QStringList allKeys()
const;
67 void setValue(
const QString &key,
const QVariant &value);
68 void remove(
const QString &key);
74 void setVersionKey(
const QString &key);
75 QString versionKey()
const;
77 void setVersion(
int version);
84 void addMigration(
int version,
Migration migration);
92 int migrate(
int targetVersion);
Thin wrapper around QSettings that keeps call sites free of the usual boilerplate: typed accessors wi...
void valueChanged(const QString &key, const QVariant &value)
Emitted whenever a value is written or removed.
std::function< void(QxSettings &settings)> Migration
A migration step that upgrades the stored layout to a target version.
#define QX_DECLARE_PRIVATE(Class)
#define QX_CORE_BEGIN_NAMESPACE
#define QX_CORE_END_NAMESPACE