core/reloader: trigger onPostReload if launched post-reload

This is similar to the check in Reloadable, and fixes a number of hard
to debug issues with Process, IpcHandler, NotificationServer, and
GlobalShortcut not working depending on where you put them in a QML file.
This commit is contained in:
outfoxxed 2025-07-04 15:58:41 -07:00
parent 0e6518a706
commit 9708d8212a
Signed by untrusted user: outfoxxed
GPG key ID: 4C88A185FB89301E
8 changed files with 36 additions and 38 deletions

View file

@ -119,16 +119,19 @@ private:
};
/// Hook that runs after the old widget tree is dropped during a reload.
class PostReloadHook {
class PostReloadHook
: public QObject
, public QQmlParserStatus {
public:
PostReloadHook() = default;
virtual ~PostReloadHook() = default;
PostReloadHook(PostReloadHook&&) = default;
PostReloadHook(const PostReloadHook&) = default;
PostReloadHook& operator=(PostReloadHook&&) = default;
PostReloadHook& operator=(const PostReloadHook&) = default;
PostReloadHook(QObject* parent = nullptr): QObject(parent) {}
void classBegin() override {}
void componentComplete() override;
void postReload();
virtual void onPostReload() = 0;
static void postReloadTree(QObject* root);
protected:
bool isPostReload = false;
};