From b963a0bdf254a88d51d491e3720b281f7d863527 Mon Sep 17 00:00:00 2001 From: Water Chika <water_chika@outlook.com> Date: Tue, 3 Oct 2023 19:18:20 +0800 Subject: [PATCH] Avoid infinite loops in MainApplication::cleanup Change-Id: I910ab554c463a3d91c48c297c6c1ed48202283f9 --- src/app/mainapplication.cpp | 9 +++++++-- src/app/mainapplication.h | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/app/mainapplication.cpp b/src/app/mainapplication.cpp index 2202c4561..29c98343e 100644 --- a/src/app/mainapplication.cpp +++ b/src/app/mainapplication.cpp @@ -105,7 +105,7 @@ ScreenInfo::onPhysicalDotsPerInchChanged() } MainApplication::MainApplication(int& argc, char** argv) - : QApplication(argc, argv) + : QApplication(argc, argv), isCleanupped(false) { const char* qtVersion = qVersion(); qInfo() << "Using Qt runtime version:" << qtVersion; @@ -401,7 +401,12 @@ MainApplication::initSystray() void MainApplication::cleanup() { - QApplication::exit(0); + // In Qt 6.5, QApplication::exit(0) will signal aboutToQuit, and aboutToQuit is connected to cleanup + // TODO: delete cleanup. + if (!isCleanupped) { + isCleanupped = true; + QApplication::exit(0); + } } #ifdef Q_OS_MACOS diff --git a/src/app/mainapplication.h b/src/app/mainapplication.h index 3e42b7744..3fabd8e5b 100644 --- a/src/app/mainapplication.h +++ b/src/app/mainapplication.h @@ -121,4 +121,6 @@ private: QScopedPointer<ImageDownloader> imageDownloader_; ScreenInfo screenInfo_; + + bool isCleanupped; }; -- GitLab