From cf807253e4a6dbb90bddc8db7426599220d92d4e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 12 May 2017 08:55:01 +0200 Subject: [PATCH] QML application wizards: Add code to bail out on load errors When something goes wrong with deployment or there is a syntax error in the QML files, the old code would enter the main loop not showing any windows. Worse, the binary is then locked on Windows and cannot be overwritten. Add a clause checking whether there are any root objects and bail out on failure. Task-number: QTBUG-60764 Change-Id: I3620a09ec4331dc04a5194dfd2ece2ff44bdc429 Reviewed-by: Eike Ziller Reviewed-by: Alessandro Portale --- .../templates/wizards/projects/qtcanvas3dapplication/main.cpp | 2 ++ .../templates/wizards/projects/qtquickapplication/main.cpp | 2 ++ .../wizards/projects/qtquickcontrols2application/main.cpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/share/qtcreator/templates/wizards/projects/qtcanvas3dapplication/main.cpp b/share/qtcreator/templates/wizards/projects/qtcanvas3dapplication/main.cpp index 69f2694815b..9579699af19 100644 --- a/share/qtcreator/templates/wizards/projects/qtcanvas3dapplication/main.cpp +++ b/share/qtcreator/templates/wizards/projects/qtcanvas3dapplication/main.cpp @@ -6,6 +6,8 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + if (engine.rootObjects().isEmpty()) + return -1; return app.exec(); } diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp index a15a1f0b569..31af279601e 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp @@ -10,6 +10,8 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + if (engine.rootObjects().isEmpty()) + return -1; return app.exec(); } diff --git a/share/qtcreator/templates/wizards/projects/qtquickcontrols2application/main.cpp b/share/qtcreator/templates/wizards/projects/qtquickcontrols2application/main.cpp index e08a85e3fde..cabbb206e3c 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickcontrols2application/main.cpp +++ b/share/qtcreator/templates/wizards/projects/qtquickcontrols2application/main.cpp @@ -11,6 +11,8 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; engine.load(QUrl(QLatin1String("qrc:/main.qml"))); + if (engine.rootObjects().isEmpty()) + return -1; return app.exec(); }