aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlapplicationengine.cpp
diff options
context:
space:
mode:
authorMichal Policht <michpolicht@gmail.com>2019-02-06 14:58:59 +0100
committerMichal Policht <michpolicht@gmail.com>2019-02-13 16:46:19 +0000
commit1e3ed172f35abaa0e0af43ee22259bc3cd188ad8 (patch)
treeac538d38b83874cb0647a263bae1f0e99b88fefc /src/qml/qml/qqmlapplicationengine.cpp
parent01f9c623ed2dc1645ac022d69062f720e3b50132 (diff)
Connect quit() and exit() signals with queued connections
Class QQmlApplicationEngine connects QQmlApplicationEngine::quit() signal to QCoreApplication::quit() and QQmlApplicationEngine::exit() signal to QCoreApplication::exit(), but it does so with AutoConnection. This causes in some circumstances problems, which are described in Qt documentation (see QCoreApplication::exit()). This change modifies type of connections to queued connections. [ChangeLog][QtQml][QQmlApplicationEngine] QQmlApplicationEngine connects quit() and exit() signals with queued connections to avoid problems with AutoConnection, when connecting to QCoreApplication slots. Task-number: QTBUG-73649 Change-Id: Ib27738b5af2f879efee8862b1ca01613a2e8dc4e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlapplicationengine.cpp')
-rw-r--r--src/qml/qml/qqmlapplicationengine.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlapplicationengine.cpp b/src/qml/qml/qqmlapplicationengine.cpp
index 9ac2100eab..c519429d48 100644
--- a/src/qml/qml/qqmlapplicationengine.cpp
+++ b/src/qml/qml/qqmlapplicationengine.cpp
@@ -70,8 +70,10 @@ void QQmlApplicationEnginePrivate::cleanUp()
void QQmlApplicationEnginePrivate::init()
{
Q_Q(QQmlApplicationEngine);
- q->connect(q, SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));
- q->connect(q, &QQmlApplicationEngine::exit, QCoreApplication::instance(), &QCoreApplication::exit);
+ q->connect(q, &QQmlApplicationEngine::quit, QCoreApplication::instance(),
+ &QCoreApplication::quit, Qt::QueuedConnection);
+ q->connect(q, &QQmlApplicationEngine::exit, QCoreApplication::instance(),
+ &QCoreApplication::exit, Qt::QueuedConnection);
#if QT_CONFIG(translation)
QTranslator* qtTranslator = new QTranslator;
if (qtTranslator->load(QLocale(), QLatin1String("qt"), QLatin1String("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath)))