aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugin/plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugin/plugin.cpp')
-rw-r--r--src/plugin/plugin.cpp98
1 files changed, 14 insertions, 84 deletions
diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp
index 122a671d..6ea93d47 100644
--- a/src/plugin/plugin.cpp
+++ b/src/plugin/plugin.cpp
@@ -1,39 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include "plugin.h"
-#include "extensionloader.h"
#include <QtVirtualKeyboard/private/platforminputcontext_p.h>
-#include <QtVirtualKeyboard/private/plaininputmethod_p.h>
-#include <QtVirtualKeyboard/private/qvirtualkeyboard_staticplugin_p.h>
#include <QLoggingCategory>
-#include <QtQml>
+#if defined(Q_OS_WIN)
+#include <qt_windows.h>
+#endif
+#include <qpa/qplatforminputcontextfactory_p.h>
QT_BEGIN_NAMESPACE
@@ -41,9 +15,7 @@ using namespace QtVirtualKeyboard;
Q_LOGGING_CATEGORY(qlcVirtualKeyboard, "qt.virtualkeyboard")
-static const char pluginsUri[] = "QtQuick.VirtualKeyboard.Plugins";
static const char pluginName[] = "qtvirtualkeyboard";
-static const char inputMethodEnvVarName[] = "QT_IM_MODULE";
QStringList QVirtualKeyboardPlugin::keys() const
{
@@ -54,60 +26,18 @@ QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system, con
{
Q_UNUSED(paramList);
-#if defined(QT_STATICPLUGIN)
-#if !defined(QT_VIRTUALKEYBOARD_DISABLE_LAYOUTS)
- Q_INIT_RESOURCE(qmake_virtualkeyboard_layouts);
-#endif
- Q_INIT_RESOURCE(virtualkeyboard_content);
-#if !defined(QT_VIRTUALKEYBOARD_NO_BUILTIN_STYLES)
- Q_INIT_RESOURCE(virtualkeyboard_default_style);
- Q_INIT_RESOURCE(virtualkeyboard_retro_style);
-#endif
- Q_VKB_IMPORT_PLUGIN(QtQuickVirtualKeyboardPlugin)
- Q_VKB_IMPORT_PLUGIN(QtQuickVirtualKeyboardSettingsPlugin)
- Q_VKB_IMPORT_PLUGIN(QtQuickVirtualKeyboardStylesPlugin)
-#endif
-
- if (!qEnvironmentVariableIsSet(inputMethodEnvVarName) || qgetenv(inputMethodEnvVarName) != pluginName)
- return Q_NULLPTR;
+ if (!QPlatformInputContextFactory::requested().contains(QLatin1StringView(pluginName)))
+ return nullptr;
if (system.compare(system, QLatin1String(pluginName), Qt::CaseInsensitive) != 0)
- return Q_NULLPTR;
- PlatformInputContext *platformInputContext = new PlatformInputContext();
-
- QStringList inputMethodList;
- inputMethodList.append(QLatin1String("PlainInputMethod"));
- qRegisterMetaType<PlainInputMethod *>("PlainInputMethod*");
- qmlRegisterType<PlainInputMethod>(pluginsUri, 1, 0, "PlainInputMethod");
- qmlRegisterType<PlainInputMethod>(pluginsUri, 2, 0, "PlainInputMethod");
- qmlRegisterType<PlainInputMethod>(pluginsUri, 2, 3, "PlainInputMethod");
-
- QMultiHash<QString, QJsonObject> extensions = ExtensionLoader::plugins();
- for (const QString &extensionName : extensions.uniqueKeys()) {
- QJsonObject metaData = ExtensionLoader::loadMeta(extensionName);
- if (metaData.isEmpty()) {
- qCWarning(qlcVirtualKeyboard) << "Error loading extension - metadata not found!";
- continue;
- }
- const QString inputMethod = metaData.value(QLatin1String("InputMethod")).toString();
- if (!inputMethod.isEmpty() && inputMethodList.contains(inputMethod)) {
- qCWarning(qlcVirtualKeyboard) << "Ignored extension" << extensionName <<
- "by" << metaData.value(QLatin1String("Provider")).toString() <<
- "-" << inputMethod << "is already registered!";
- continue;
- }
- qCDebug(qlcVirtualKeyboard) << "Loading extension" << extensionName;
- QVirtualKeyboardExtensionPlugin *extensionPlugin = ExtensionLoader::loadPlugin(metaData);
- if (extensionPlugin && !inputMethod.isEmpty()) {
- extensionPlugin->registerTypes(pluginsUri);
- inputMethodList.append(inputMethod);
- }
- }
+ return nullptr;
- // Auto-increment the import to stay in sync with ALL future QtQuick minor versions
- qmlRegisterModule(pluginsUri, 2, QT_VERSION_MINOR);
+#if defined(Q_OS_WIN)
+ // QTBUG-93042
+ ImmDisableIME(0);
+#endif
- platformInputContext->setInputMethods(inputMethodList);
+ PlatformInputContext *platformInputContext = new PlatformInputContext();
return platformInputContext;
}