summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2018-03-29 11:52:55 +0200
committerRobert Griebl <robert.griebl@pelagicore.com>2018-04-04 14:42:47 +0000
commitb1ed6ad9c7335a03127b322c0cd58473d58900e6 (patch)
tree8d64b378275fd1c11b848d9e161f20c5e682e8c4
parentc0675368828969f3bfb5509f49a7c5368f0b8af3 (diff)
Disconnect the quit and exit signals of the QQmlApplicationEngine5.10
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 <robert.griebl@pelagicore.com>
-rw-r--r--src/launchers/qml/main.cpp1
-rw-r--r--src/main-lib/main.cpp3
2 files changed, 3 insertions, 1 deletions
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<ApplicationManagerWindow>("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);