From 4e42f61faaab4071f3052dc18040ce2b5bbc940a Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Sat, 14 Jan 2023 10:59:27 +0100 Subject: [PATCH] Add `applicationDisplayNameChanged` & `lastWindowClosed` signals to `QApplication` --- .../nodegui/QtGui/QApplication/napplication.hpp | 14 ++++++++++++++ src/lib/QtGui/QApplication.ts | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/cpp/include/nodegui/QtGui/QApplication/napplication.hpp b/src/cpp/include/nodegui/QtGui/QApplication/napplication.hpp index 4e58fd592..b0f7ac0fa 100644 --- a/src/cpp/include/nodegui/QtGui/QApplication/napplication.hpp +++ b/src/cpp/include/nodegui/QtGui/QApplication/napplication.hpp @@ -18,6 +18,14 @@ class DLL_EXPORT NApplication : public QApplication, public EventWidget { // Qt Connects: Implement all signal connects here QOBJECT_SIGNALS + QObject::connect( + this, &QGuiApplication::applicationDisplayNameChanged, [=]() { + Napi::Env env = this->emitOnNode.Env(); + Napi::HandleScope scope(env); + this->emitOnNode.Call( + {Napi::String::New(env, "applicationDisplayNameChanged")}); + }); + QObject::connect( this, &QGuiApplication::focusWindowChanged, [=](QWindow* focusWindow) { Napi::Env env = this->emitOnNode.Env(); @@ -25,6 +33,12 @@ class DLL_EXPORT NApplication : public QApplication, public EventWidget { this->emitOnNode.Call({Napi::String::New(env, "focusWindowChanged")}); }); + QObject::connect(this, &QGuiApplication::lastWindowClosed, [=]() { + Napi::Env env = this->emitOnNode.Env(); + Napi::HandleScope scope(env); + this->emitOnNode.Call({Napi::String::New(env, "lastWindowClosed")}); + }); + QObject::connect( this, &QGuiApplication::primaryScreenChanged, [=](QScreen* screen) { Napi::Env env = this->emitOnNode.Env(); diff --git a/src/lib/QtGui/QApplication.ts b/src/lib/QtGui/QApplication.ts index 63a9bfeb7..b7a665f56 100644 --- a/src/lib/QtGui/QApplication.ts +++ b/src/lib/QtGui/QApplication.ts @@ -105,7 +105,9 @@ export class QApplication extends QObject { wrapperCache.registerWrapper('QApplicationWrap', QApplication); export interface QApplicationSignals extends QObjectSignals { + applicationDisplayNameChanged: () => void; focusWindowChanged: () => void; + lastWindowClosed: () => void; primaryScreenChanged: (screen: QScreen) => void; screenAdded: (screen: QScreen) => void; screenRemoved: (screen: QScreen) => void;