From 5040f3796cc633ed366a965715376537376e3df9 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 18 Aug 2024 19:54:36 -0700 Subject: [PATCH] core/reloader: delay post-reload reload hooks Ensures onReload runs after Component.onCompleted. --- src/core/reload.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/reload.cpp b/src/core/reload.cpp index c62706ab..10627c0a 100644 --- a/src/core/reload.cpp +++ b/src/core/reload.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "generation.hpp" @@ -12,8 +13,10 @@ void Reloadable::componentComplete() { if (this->engineGeneration != nullptr) { // When called this way there is no chance a reload will have old data, // but this will at least help prevent weird behaviors due to never getting a reload. - if (this->engineGeneration->reloadComplete) this->reload(); - else { + if (this->engineGeneration->reloadComplete) { + // Delayed due to Component.onCompleted running after QQmlParserStatus::componentComplete. + QTimer::singleShot(0, this, &Reloadable::onReloadFinished); + } else { QObject::connect( this->engineGeneration, &EngineGeneration::reloadFinished,