8#include <dtkcore_global.h>
14#include <QJsonDocument>
25class DConfigFilePrivate;
34 Q_DECLARE_FLAGS(Flags, Flag)
53 explicit DConfigFile(
const QString &appId,
const QString &name,
54 const QString &subpath = QString());
57 bool load(
const QString &localPrefix = QString());
58 bool load(QIODevice *meta,
const QList<QIODevice*> &overrides);
60 bool save(
const QString &localPrefix = QString(), QJsonDocument::JsonFormat format = QJsonDocument::Indented,
61 bool sync =
false)
const;
66 bool setValue(
const QString &key,
const QVariant &value,
const QString &callerAppid,
75 friend QDebug operator<<(QDebug,
const DConfigFile &);
82 virtual void setVersion(quint16 major, quint16 minor) = 0;
84 virtual bool load(
const QString &localPrefix = QString()) = 0;
86 virtual bool load(QIODevice *meta,
const QList<QIODevice*> &overrides) = 0;
89 virtual DConfigFile::Flags
flags(
const QString &key)
const = 0;
92 virtual int serial(
const QString &key)
const = 0;
94 virtual QString
displayName(
const QString &key,
const QLocale &locale) = 0;
95 virtual QString
description(
const QString &key,
const QLocale &locale) = 0;
97 virtual QString
metaPath(
const QString &localPrefix = QString(),
bool *useAppId =
nullptr)
const = 0;
98 virtual QStringList
allOverrideDirs(
const bool useAppId,
const QString &prefix = QString())
const = 0;
100 virtual QVariant
value(
const QString &key)
const = 0;
101 static QStringList genericMetaDirs(
const QString &localPrefix = QString());
102 static QStringList applicationMetaDirs(
const QString &localPrefix,
const QString &appId);
109 virtual bool load(
const QString &localPrefix = QString()) = 0;
110 virtual bool save(
const QString &localPrefix = QString(),
111 QJsonDocument::JsonFormat format = QJsonDocument::Indented,
bool sync =
false) = 0;
114 virtual void remove(
const QString &key) = 0;
116 virtual bool setValue(
const QString &key,
const QVariant &value,
const int serial,
117 const uint uid,
const QString &callerAppid) = 0;
118 virtual QVariant
value(
const QString &key)
const = 0;
119 virtual int serial(
const QString &key)
const = 0;
120 virtual uint
uid()
const = 0;
122 virtual void setCachePathPrefix(
const QString &prefix) = 0;
125#ifndef QT_NO_DEBUG_STREAM
126Q_CORE_EXPORT QDebug operator<<(QDebug,
const DConfigFile &);
129Q_DECLARE_OPERATORS_FOR_FLAGS(DConfigFile::Flags)
提供配置文件的用户和全局运行缓存访问接口
Definition dconfigfile.h:105
virtual bool setValue(const QString &key, const QVariant &value, const int serial, const uint uid, const QString &callerAppid)=0
设置缓存中的值
virtual bool save(const QString &localPrefix=QString(), QJsonDocument::JsonFormat format=QJsonDocument::Indented, bool sync=false)=0
保存缓存的值到磁盘中
virtual void remove(const QString &key)=0
删除缓存中的配置项
virtual QStringList keyList() const =0
返回配置内容的所有配置项
virtual int serial(const QString &key) const =0
返回配置项的单调递增值
virtual bool isGlobal() const =0
是否是全局缓存
virtual QVariant value(const QString &key) const =0
获取缓存中的值
virtual uint uid() const =0
用户标识,为全局缓存时,uid为非用户标识的特定值
virtual bool load(const QString &localPrefix=QString())=0
解析缓存配置文件
规范配置文件读写的相关接口的配置文件实现
Definition dconfigfile.h:26
bool isValid() const
检测配置文件是否有效
bool load(QIODevice *meta, const QList< QIODevice * > &overrides)
解析配置文件流
static constexpr Version supportedVersion()
支持的版本
QVariant cacheValue(DConfigCache *userCache, const QString &key) const
DConfigFile::cacheValue 获取指定用户缓存的配置项值,若无此配置项的用户缓存值,返回无效值
bool load(const QString &localPrefix=QString())
解析配置文件
bool setValue(const QString &key, const QVariant &value, const QString &callerAppid, DConfigCache *userCache=nullptr)
设置缓存中的值
DConfigFile(const QString &appId, const QString &name, const QString &subpath=QString())
DConfigFile构造函数,构造配置文件管理对象。
DConfigCache * createUserCache(const uint uid)
创建用户缓存
Flag
配置项名称
Definition dconfigfile.h:29
DConfigFile(const DConfigFile &other)
DConfigFile构造函数,构造配置文件管理对象。
DConfigMeta * meta()
返回原型对象
QVariant value(const QString &key, DConfigCache *userCache=nullptr) const
DConfigFile::value
bool save(const QString &localPrefix=QString(), QJsonDocument::JsonFormat format=QJsonDocument::Indented, bool sync=false) const
保存缓存的值到磁盘中
DConfigCache * globalCache() const
返回全局缓存
Permissions
配置项的权限
Definition dconfigfile.h:36
@ ReadOnly
将配置项覆盖为只读
Definition dconfigfile.h:37
Visibility
配置项的可见性
Definition dconfigfile.h:41
@ Private
仅限程序内部使用,对外不可见。此类配置项完全由程序自己读写,可随意增删改写其含义,无需做兼容性考虑
Definition dconfigfile.h:42
版本信息
Definition dconfigfile.h:46