From 1f154c08c51095a007b9460b08bee433d9545c8d Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 17 Dec 2019 07:43:49 +0800 Subject: [PATCH] try to fix crash on macOS --- src/main.cpp | 3 ++- src/vapplication.cpp | 5 +++-- src/vapplication.h | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 9d3ea90c..496ee1a3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -265,6 +265,7 @@ int main(int argc, char *argv[]) g_palette = &palette; VMainWindow w(&guard); + app.setWindow(&w); QString style = palette.fetchQtStyleSheet(); if (!style.isEmpty()) { app.setStyleSheet(style); @@ -276,8 +277,8 @@ int main(int argc, char *argv[]) w.kickOffStartUpTimer(filePaths); - app.setWindow(&w); int ret = app.exec(); + app.setWindow(nullptr); if (ret == RESTART_EXIT_CODE) { // Ask to restart VNote. guard.exit(); diff --git a/src/vapplication.cpp b/src/vapplication.cpp index 12a1f483..2680d427 100644 --- a/src/vapplication.cpp +++ b/src/vapplication.cpp @@ -3,14 +3,15 @@ VApplication::VApplication(int &argc, char **argv) : QApplication(argc, argv) { - connect(this, &QApplication::applicationStateChanged, this, &VApplication::onApplicationStateChanged); + connect(this, &QApplication::applicationStateChanged, + this, &VApplication::onApplicationStateChanged); } void VApplication::onApplicationStateChanged(Qt::ApplicationState state) { Q_UNUSED(state); #if defined(Q_OS_MACOS) || defined(Q_OS_MAC) - if(state == Qt::ApplicationActive) { + if(state == Qt::ApplicationActive && this->window) { this->window->show(); // Need to call raise() in macOS. this->window->raise(); diff --git a/src/vapplication.h b/src/vapplication.h index 7913d7ed..31bdfffe 100644 --- a/src/vapplication.h +++ b/src/vapplication.h @@ -21,7 +21,7 @@ public slots: void onApplicationStateChanged(Qt::ApplicationState state); private: - VMainWindow *window; + VMainWindow *window = nullptr; }; -#endif // VAPPLICATION_H \ No newline at end of file +#endif // VAPPLICATION_H