6#include <phosphorconfig_export.h>
20class IGroupPathResolver;
65 QMetaType::Type expectedType = QMetaType::UnknownType;
75 QString description = {};
92 std::function<QVariant(
const QVariant& value)> validator = {};
105 QVector<ChoiceDef> choices = {};
137 QString versionKey = QStringLiteral(
"_version");
164 QVariant
defaultFor(
const QString& group,
const QString& key)
const;
168 QVector<ChoiceDef>
choicesFor(
const QString& group,
const QString& key)
const;
One legal value of an enum-style key: the value as stored, plus a stable token naming it.
Definition Schema.h:36
QVariant value
The value as persisted — an int for a C++ enum, a string for a token-valued key.
Definition Schema.h:39
QString token
Stable identifier for this choice, e.g.
Definition Schema.h:44
Declaration for a single configuration key.
Definition Schema.h:62
QVariant defaultValue
Definition Schema.h:64
QString key
Definition Schema.h:63
One step in a schema version migration chain.
Definition Schema.h:113
std::function< void(QJsonObject &)> migrate
Definition Schema.h:115
Declarative description of a configuration store.
Definition Schema.h:127
std::shared_ptr< IGroupPathResolver > pathResolver
Optional per-screen / custom name resolver.
Definition Schema.h:156
QMap< QString, QVector< KeyDef > > groups
Keys grouped by their group name.
Definition Schema.h:147
QVector< MigrationStep > migrations
Ordered migration chain.
Definition Schema.h:152
QVector< ChoiceDef > choicesFor(const QString &group, const QString &key) const
The legal values of a declared key.
const KeyDef * findKey(const QString &group, const QString &key) const
Look up a KeyDef by (group, key).
QVariant defaultFor(const QString &group, const QString &key) const
Convenience: default value for a declared key, or QVariant() if the key is undeclared.