Utils: Add Aspects::volatileToMap

Change-Id: Ic4b77e27570485864cb4a9a412d685c400a9e7d1
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-08-24 09:35:48 +02:00
parent 91c1fdb457
commit 0490266723
2 changed files with 49 additions and 0 deletions

View File

@@ -136,6 +136,11 @@ void BaseAspect::setId(Id id)
d->m_id = id; d->m_id = id;
} }
QVariant BaseAspect::volatileVariantValue() const
{
return {};
}
QVariant BaseAspect::variantValue() const QVariant BaseAspect::variantValue() const
{ {
return {}; return {};
@@ -601,6 +606,16 @@ void BaseAspect::toMap(Store &map) const
saveToMap(map, toSettingsValue(variantValue()), toSettingsValue(defaultVariantValue()), settingsKey()); saveToMap(map, toSettingsValue(variantValue()), toSettingsValue(defaultVariantValue()), settingsKey());
} }
void BaseAspect::volatileToMap(Store &map) const
{
if (settingsKey().isEmpty())
return;
saveToMap(map,
toSettingsValue(volatileVariantValue()),
toSettingsValue(defaultVariantValue()),
settingsKey());
}
void BaseAspect::readSettings() void BaseAspect::readSettings()
{ {
if (settingsKey().isEmpty()) if (settingsKey().isEmpty())
@@ -704,6 +719,12 @@ public:
m_checked->toMap(map); m_checked->toMap(map);
} }
void volatileToMap(Store &map)
{
if (m_checked)
m_checked->volatileToMap(map);
}
template<class Widget> template<class Widget>
void updateWidgetFromCheckStatus(BaseAspect *aspect, Widget *w) void updateWidgetFromCheckStatus(BaseAspect *aspect, Widget *w)
{ {
@@ -937,6 +958,12 @@ void StringAspect::toMap(Store &map) const
d->m_checkerImpl.toMap(map); d->m_checkerImpl.toMap(map);
} }
void StringAspect::volatileToMap(Store &map) const
{
saveToMap(map, volatileValue(), defaultValue(), settingsKey());
d->m_checkerImpl.volatileToMap(map);
}
/*! /*!
\internal \internal
*/ */
@@ -1457,6 +1484,12 @@ void FilePathAspect::toMap(Store &map) const
d->m_checkerImpl.toMap(map); d->m_checkerImpl.toMap(map);
} }
void FilePathAspect::volatileToMap(Store &map) const
{
saveToMap(map, volatileValue(), defaultValue(), settingsKey());
d->m_checkerImpl.volatileToMap(map);
}
void FilePathAspect::setPromptDialogFilter(const QString &filter) void FilePathAspect::setPromptDialogFilter(const QString &filter)
{ {
d->m_prompDialogFilter = filter; d->m_prompDialogFilter = filter;
@@ -2530,6 +2563,12 @@ void AspectContainer::toMap(Store &map) const
aspect->toMap(map); aspect->toMap(map);
} }
void AspectContainer::volatileToMap(Store &map) const
{
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->volatileToMap(map);
}
void AspectContainer::readSettings() void AspectContainer::readSettings()
{ {
const SettingsGroupNester nester(d->m_settingsGroup); const SettingsGroupNester nester(d->m_settingsGroup);

View File

@@ -56,6 +56,7 @@ public:
enum Announcement { DoEmit, BeQuiet }; enum Announcement { DoEmit, BeQuiet };
virtual QVariant volatileVariantValue() const;
virtual QVariant variantValue() const; virtual QVariant variantValue() const;
virtual void setVariantValue(const QVariant &value, Announcement = DoEmit); virtual void setVariantValue(const QVariant &value, Announcement = DoEmit);
@@ -104,6 +105,7 @@ public:
virtual void fromMap(const Store &map); virtual void fromMap(const Store &map);
virtual void toMap(Store &map) const; virtual void toMap(Store &map) const;
virtual void toActiveMap(Store &map) const { toMap(map); } virtual void toActiveMap(Store &map) const { toMap(map); }
virtual void volatileToMap(Store &map) const;
virtual void addToLayout(Layouting::LayoutItem &parent); virtual void addToLayout(Layouting::LayoutItem &parent);
@@ -329,6 +331,11 @@ protected:
return QVariant::fromValue<ValueType>(m_internal); return QVariant::fromValue<ValueType>(m_internal);
} }
QVariant volatileVariantValue() const override
{
return QVariant::fromValue<ValueType>(m_buffer);
}
void setVariantValue(const QVariant &value, Announcement howToAnnounce = DoEmit) override void setVariantValue(const QVariant &value, Announcement howToAnnounce = DoEmit) override
{ {
setValue(value.value<ValueType>(), howToAnnounce); setValue(value.value<ValueType>(), howToAnnounce);
@@ -560,6 +567,7 @@ public:
void fromMap(const Utils::Store &map) override; void fromMap(const Utils::Store &map) override;
void toMap(Utils::Store &map) const override; void toMap(Utils::Store &map) const override;
void volatileToMap(Utils::Store &map) const override;
signals: signals:
void validChanged(bool validState); void validChanged(bool validState);
@@ -629,6 +637,7 @@ public:
void fromMap(const Utils::Store &map) override; void fromMap(const Utils::Store &map) override;
void toMap(Utils::Store &map) const override; void toMap(Utils::Store &map) const override;
void volatileToMap(Utils::Store &map) const override;
signals: signals:
void validChanged(bool validState); void validChanged(bool validState);
@@ -834,6 +843,7 @@ public:
void fromMap(const Utils::Store &map) override; void fromMap(const Utils::Store &map) override;
void toMap(Utils::Store &map) const override; void toMap(Utils::Store &map) const override;
void volatileToMap(Utils::Store &map) const override;
void readSettings() override; void readSettings() override;
void writeSettings() const override; void writeSettings() const override;