6#include <phosphorconfig_export.h>
20class IGroupPathResolver;
40 QMetaType::Type expectedType = QMetaType::UnknownType;
50 QString description = {};
67 std::function<QVariant(
const QVariant& value)> validator = {};
77 std::function<void(QJsonObject&)>
migrate;
99 QString versionKey = QStringLiteral(
"_version");
126 QVariant
defaultFor(
const QString& group,
const QString& key)
const;
Declaration for a single configuration key.
Definition Schema.h:37
QVariant defaultValue
Definition Schema.h:39
QString key
Definition Schema.h:38
One step in a schema version migration chain.
Definition Schema.h:75
std::function< void(QJsonObject &)> migrate
Definition Schema.h:77
Declarative description of a configuration store.
Definition Schema.h:89
std::shared_ptr< IGroupPathResolver > pathResolver
Optional per-screen / custom name resolver.
Definition Schema.h:118
QMap< QString, QVector< KeyDef > > groups
Keys grouped by their group name.
Definition Schema.h:109
QVector< MigrationStep > migrations
Ordered migration chain.
Definition Schema.h:114
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.