fix: allow reloadable objects inside of proxy windows

This commit is contained in:
outfoxxed 2024-02-16 23:47:55 -08:00
parent d967d56d3b
commit 5e58f0ba9f
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E

View file

@ -10,6 +10,7 @@
#include <qwindow.h> #include <qwindow.h>
#include "region.hpp" #include "region.hpp"
#include "reload.hpp"
ProxyWindowBase::~ProxyWindowBase() { ProxyWindowBase::~ProxyWindowBase() {
if (this->window != nullptr) { if (this->window != nullptr) {
@ -28,10 +29,18 @@ void ProxyWindowBase::onReload(QObject* oldInstance) {
this->setupWindow(); this->setupWindow();
for (auto* child: this->pendingChildren) {
Reloadable::reloadRecursive(child, oldInstance);
}
auto backer = this->dataBacker(); auto backer = this->dataBacker();
for (auto* child: this->pendingChildren) { for (auto* child: this->pendingChildren) {
// Reparent QQuickItems to the content element,
// while leaving QObjects parented to the proxy window.
if (qobject_cast<QQuickItem*>(child) != nullptr) {
backer.append(&backer, child); backer.append(&backer, child);
} }
}
this->pendingChildren.clear(); this->pendingChildren.clear();