aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/plugin.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-07-08 16:29:19 +0200
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-07-09 05:05:42 +0000
commitfbfaf6a7bc7575c1f4c1fa589ffe97a6127e58bd (patch)
tree9373e693546728c78468bcf7f22fb1ffd161cef6 /src/virtualkeyboard/plugin.cpp
parent90510c78e226ff61aba00821606292eab2df122e (diff)
Disable creation of plugin unless QT_IM_MODULE is set to "qtvirtualkeyboard".
In order to use it, the environment variable must be explicitly set. Otherwise, the plugin is pulled and activated by any Qt application. The behavior now matches the documentation. Task-number: QTRD-3660 Task-number: QTBUG-47099 Change-Id: Iaa09c7646bfe6c4de898ba03940af3de2fb3d4a7 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Diffstat (limited to 'src/virtualkeyboard/plugin.cpp')
-rw-r--r--src/virtualkeyboard/plugin.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/virtualkeyboard/plugin.cpp b/src/virtualkeyboard/plugin.cpp
index 31b66481..db079f88 100644
--- a/src/virtualkeyboard/plugin.cpp
+++ b/src/virtualkeyboard/plugin.cpp
@@ -43,6 +43,9 @@
#include "declarativesettings.h"
#include "declarativetrace.h"
+static const char pluginName[] = "qtvirtualkeyboard";
+static const char inputMethodEnvVarName[] = "QT_IM_MODULE";
+
static QPointer<PlatformInputContext> platformInputContext;
static QObject *createInputContextModule(QQmlEngine *engine, QJSEngine *scriptEngine)
@@ -72,7 +75,7 @@ static QObject *createInputContextModule(QQmlEngine *engine, QJSEngine *scriptEn
QStringList PlatformInputContextPlugin::keys() const
{
- return QStringList(QStringLiteral("qtvirtualkeyboard"));
+ return QStringList(QLatin1String(pluginName));
}
QPlatformInputContext *PlatformInputContextPlugin::create(const QString &system, const QStringList &paramList)
@@ -81,6 +84,10 @@ QPlatformInputContext *PlatformInputContextPlugin::create(const QString &system,
Q_INIT_RESOURCE(content);
Q_INIT_RESOURCE(default_style);
Q_INIT_RESOURCE(retro_style);
+
+ if (!qEnvironmentVariableIsSet(inputMethodEnvVarName) || qgetenv(inputMethodEnvVarName) != pluginName)
+ return Q_NULLPTR;
+
qmlRegisterSingletonType<DeclarativeInputContext>("QtQuick.Enterprise.VirtualKeyboard", 1, 0, "InputContext", createInputContextModule);
qmlRegisterUncreatableType<DeclarativeInputEngine>("QtQuick.Enterprise.VirtualKeyboard", 1, 0, "InputEngine", "Cannot create input method engine");
qmlRegisterUncreatableType<DeclarativeShiftHandler>("QtQuick.Enterprise.VirtualKeyboard", 1, 0, "ShiftHandler", "Cannot create shift handler");