From b1ed6ad9c7335a03127b322c0cd58473d58900e6 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Thu, 29 Mar 2018 11:52:55 +0200 Subject: Disconnect the quit and exit signals of the QQmlApplicationEngine Without this a call of Qt.quit() directly quits appman without waiting for all applications to be stopped. Change-Id: Ic64ee23a05fab829d507d59cc184e20cbcb4edf0 Reviewed-by: Robert Griebl --- src/launchers/qml/main.cpp | 1 - src/main-lib/main.cpp | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/launchers/qml/main.cpp b/src/launchers/qml/main.cpp index 41c9dea2..b03568f8 100644 --- a/src/launchers/qml/main.cpp +++ b/src/launchers/qml/main.cpp @@ -214,7 +214,6 @@ Controller::Controller(LauncherMain *a, bool quickLaunched, const QString &direc , m_quickLaunched(quickLaunched) { connect(&m_engine, &QObject::destroyed, a, &QCoreApplication::quit); - connect(&m_engine, &QQmlEngine::quit, a, &QCoreApplication::quit); #if !defined(AM_HEADLESS) qmlRegisterType("QtApplicationManager", 1, 0, "ApplicationManagerWindow"); diff --git a/src/main-lib/main.cpp b/src/main-lib/main.cpp index 707b6986..442a1f5a 100644 --- a/src/main-lib/main.cpp +++ b/src/main-lib/main.cpp @@ -555,7 +555,10 @@ void Main::setupQmlEngine(const QStringList &importPaths, const QString &quickCo StartupTimer::instance()->checkpoint("after QML registrations"); m_engine = new QQmlApplicationEngine(this); + disconnect(m_engine, &QQmlEngine::quit, qApp, nullptr); + disconnect(m_engine, &QQmlEngine::exit, qApp, nullptr); connect(m_engine, &QQmlEngine::quit, this, [this]() { shutDown(); }); + connect(m_engine, &QQmlEngine::exit, this, [this](int retCode) { shutDown(retCode); }); new QmlLogger(m_engine); m_engine->setOutputWarningsToStandardError(false); m_engine->setImportPathList(m_engine->importPathList() + importPaths); -- cgit v1.2.3