core/singleton: fix PostReloadHook in singletons

This commit is contained in:
outfoxxed 2024-03-20 01:37:30 -07:00
parent 9f38908bdf
commit 31264ac7d1
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
4 changed files with 16 additions and 6 deletions

View file

@ -55,16 +55,18 @@ void EngineGeneration::onReload(EngineGeneration* old) {
delete old;
if (old != nullptr) {
QTimer::singleShot(0, [this]() {
QuickshellPlugin::runOnReload();
PostReloadHook::postReloadTree(this->root);
});
QTimer::singleShot(0, [this]() { this->postReload(); });
} else {
QuickshellPlugin::runOnReload();
PostReloadHook::postReloadTree(this->root);
this->postReload();
}
}
void EngineGeneration::postReload() {
QuickshellPlugin::runOnReload();
PostReloadHook::postReloadTree(this->root);
this->singletonRegistry.onPostReload();
}
void EngineGeneration::setWatchingFiles(bool watching) {
if (watching) {
if (this->watcher == nullptr) {

View file

@ -44,6 +44,7 @@ private slots:
void incubationControllerDestroyed();
private:
void postReload();
void assignIncubationController();
QVector<QQmlIncubationController*> incubationControllers;
};

View file

@ -51,3 +51,9 @@ void SingletonRegistry::onReload(SingletonRegistry* old) {
singleton->onReload(old == nullptr ? nullptr : old->registry.value(url));
}
}
void SingletonRegistry::onPostReload() {
for (auto* singleton: this->registry.values()) {
PostReloadHook::postReloadTree(singleton);
}
}

View file

@ -26,6 +26,7 @@ public:
void registerSingleton(const QUrl& url, Singleton* singleton);
void onReload(SingletonRegistry* old);
void onPostReload();
private:
QHash<QUrl, Singleton*> registry;