From a3e92da8b842526e6df384f276eabd911d3d7ab4 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 29 Sep 2020 16:52:07 +0300 Subject: [PATCH] QmlPuppet: Force QApplication use in puppet if charts is imported Qt Charts requires QApplication, so force that on when QtCharts import is detected. Change-Id: Ie725cb0714f2816a34374e46de71b82f00ce6239 Fixes: QDS-2842 Reviewed-by: Thomas Hartmann --- share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp | 4 +++- .../qmldesigner/designercore/instances/puppetcreator.cpp | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp index ee2f5bac599..98df3de2953 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp @@ -149,7 +149,9 @@ int main(int argc, char *argv[]) #endif //If a style different from Desktop is set we have to use QGuiApplication - bool useGuiApplication = qEnvironmentVariableIsSet("QT_QUICK_CONTROLS_STYLE") + bool useGuiApplication = (!qEnvironmentVariableIsSet("QMLDESIGNER_FORCE_QAPPLICATION") + || qgetenv("QMLDESIGNER_FORCE_QAPPLICATION") != "true") + && qEnvironmentVariableIsSet("QT_QUICK_CONTROLS_STYLE") && qgetenv("QT_QUICK_CONTROLS_STYLE") != "Desktop"; if (useGuiApplication) { diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp index 136b51150d2..5f691bc5a02 100644 --- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp +++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp @@ -499,6 +499,9 @@ QProcessEnvironment PuppetCreator::processEnvironment() const QmlDesigner::Import import = QmlDesigner::Import::createLibraryImport("QtQuick3D", "1.0"); if (m_model->hasImport(import, true, true)) environment.set("QMLDESIGNER_QUICK3D_MODE", "true"); + import = QmlDesigner::Import::createLibraryImport("QtCharts", "2.0"); + if (m_model->hasImport(import, true, true)) + environment.set("QMLDESIGNER_FORCE_QAPPLICATION", "true"); #endif QStringList importPaths = m_model->importPaths();