@@ -47,6 +47,7 @@ public:
bool IsVariableDirty(const String& variable_name);
void DirtyVariable(const String& variable_name);
+ void DirtyAllVariables();
explicit operator bool() { return model; }
@@ -341,6 +341,13 @@ bool DataModel::IsVariableDirty(const String& variable_name) const
return dirty_variables.count(variable_name) == 1;
}
+void DataModel::DirtyAllVariables() {
+ dirty_variables.reserve(variables.size());
+ for (const auto& variable : variables) {
+ dirty_variables.emplace(variable.first);
+ }
+}
+
bool DataModel::CallTransform(const String& name, Variant& inout_result, const VariantList& arguments) const
{
if (transform_register)
@@ -68,6 +68,7 @@ public:
bool IsVariableDirty(const String& variable_name) const;
bool CallTransform(const String& name, Variant& inout_result, const VariantList& arguments) const;
@@ -43,6 +43,10 @@ void DataModelHandle::DirtyVariable(const String& variable_name) {
model->DirtyVariable(variable_name);
+void DataModelHandle::DirtyAllVariables() {
+ model->DirtyAllVariables();
DataModelConstructor::DataModelConstructor() : model(nullptr), type_register(nullptr) {}