From: Iceyer Date: Wed, 7 Feb 2018 16:02:50 +0000 (+0800) Subject: feat(DSettings): support set default value X-Git-Tag: archive/raspbian/5.7.12-2+rpi1^2~130^2~13 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5fe9bfd0a5e20cef7393639712302825b803db29;p=dtkcore.git feat(DSettings): support set default value Change-Id: I83684be7756e5038f55c9fb468195c474259f1e1 --- diff --git a/src/settings/dsettingsoption.cpp b/src/settings/dsettingsoption.cpp index 2410c6f..4edb493 100644 --- a/src/settings/dsettingsoption.cpp +++ b/src/settings/dsettingsoption.cpp @@ -48,7 +48,6 @@ public: DSettingsOption::DSettingsOption(QObject *parent) : QObject(parent), d_ptr(new DSettingsOptionPrivate(this)) { - } DSettingsOption::~DSettingsOption() @@ -95,7 +94,7 @@ QVariant DSettingsOption::defaultValue() const QVariant DSettingsOption::value() const { Q_D(const DSettingsOption); - return d->value; + return (d->value.isValid() || d->value.isNull()) ? d->defalutValue : d->value; } QVariant DSettingsOption::data(const QString &dataType) const @@ -135,6 +134,16 @@ void DSettingsOption::setValue(QVariant value) Q_EMIT valueChanged(value); } +//! +//! \brief DSettingsOption::setDefault will override default value of json +//! \param value +//! +void DSettingsOption::setDefault(QVariant value) +{ + Q_D(DSettingsOption); + d->defalutValue = value; +} + void DSettingsOption::setData(const QString &dataType, QVariant value) { Q_D(DSettingsOption); @@ -167,7 +176,6 @@ void DSettingsOptionPrivate::parseJson(const QString &prefixKey, const QJsonObje defalutValue = option.value("default").toVariant(); hidden = !option.contains("hide") ? false : option.value("hide").toBool(); viewType = option.value("type").toString(); - value = defalutValue; QStringList revserdKeys; revserdKeys << "key" << "name" << "reset" diff --git a/src/settings/dsettingsoption.h b/src/settings/dsettingsoption.h index 346923d..c89a904 100644 --- a/src/settings/dsettingsoption.h +++ b/src/settings/dsettingsoption.h @@ -56,6 +56,7 @@ Q_SIGNALS: public Q_SLOTS: void setValue(QVariant value); + void setDefault(QVariant value); void setData(const QString &dataType, QVariant value); private: