diff --git a/src/core/variants.cpp b/src/core/variants.cpp index e564e1b..eafd90a 100644 --- a/src/core/variants.cpp +++ b/src/core/variants.cpp @@ -46,6 +46,8 @@ void Variants::onReload(QObject* oldInstance) { if (instance != nullptr) instance->onReload(oldInstance); else Reloadable::reloadChildrenRecursive(instanceObj, oldInstance); } + + this->loaded = true; } void Variants::setVariants(QVariantList variants) { @@ -108,6 +110,11 @@ void Variants::updateVariants() { instance->setParent(this); this->instances.insert(variant, instance); + + if (this->loaded) { + if (auto* reloadable = qobject_cast(instance)) reloadable->onReload(nullptr); + else Reloadable::reloadChildrenRecursive(instance, nullptr); + } } outer:; diff --git a/src/core/variants.hpp b/src/core/variants.hpp index 79224e2..1c5b614 100644 --- a/src/core/variants.hpp +++ b/src/core/variants.hpp @@ -53,4 +53,5 @@ private: QQmlComponent* mComponent = nullptr; QVariantList mVariants; AwfulMap instances; + bool loaded = false; };