From 84800e8113c247d2031e01577d3e008d788f37eb Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Mar 2021 11:41:58 +0100 Subject: [PATCH] QmlDesigner: Forward QT_IM_MODULE=qtvirtualkeyboard to puppet If QT_IM_MODULE=qtvirtualkeyboard is used for the application, when we should also set it for the puppet. Task-number: QDS-3859 Change-Id: Id88132cebbb7aeddb3fbb8ff1e8aa5191cc89d15 Reviewed-by: Tuomo Pelkonen Reviewed-by: Thomas Hartmann --- .../designercore/instances/puppetcreator.cpp | 20 +++++++++++++++++++ .../designercore/instances/puppetcreator.h | 1 + 2 files changed, 21 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp index 743d3051d7a..acf3083b3e8 100644 --- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp +++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp @@ -47,6 +47,7 @@ #include +#include #include #include #include @@ -167,6 +168,20 @@ QString PuppetCreator::getStyleConfigFileName() const return QString(); } +bool PuppetCreator::usesVirtualKeyboard() const +{ +#ifndef QMLDESIGNER_TEST + if (m_target) { + auto *qmlbuild = qobject_cast(m_target->buildSystem()); + + const Utils::EnvironmentItem virtualKeyboard("QT_IM_MODULE", "qtvirtualkeyboard"); + return qmlbuild && qmlbuild->environment().indexOf(virtualKeyboard); + } + +#endif + return false; +} + PuppetCreator::PuppetCreator(ProjectExplorer::Target *target, const Model *model) : m_target(target) @@ -494,6 +509,11 @@ QProcessEnvironment PuppetCreator::processEnvironment() const environment.set("QMLDESIGNER_RC_PATHS", m_qrcMapping); } + if (usesVirtualKeyboard()) { + environment.set("QT_IM_MODULE", "qtvirtualkeyboard"); + environment.set("QT_VIRTUALKEYBOARD_DESKTOP_DISABLE", "1"); + } + #ifndef QMLDESIGNER_TEST // set env var if QtQuick3D import exists QmlDesigner::Import import = QmlDesigner::Import::createLibraryImport("QtQuick3D", "1.0"); diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h index e001b9d0c10..f7b5761762e 100644 --- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h +++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h @@ -103,6 +103,7 @@ protected: bool useOnlyFallbackPuppet() const; QString getStyleConfigFileName() const; + bool usesVirtualKeyboard() const; private: mutable QString m_compileLog;