blob: 933d990f7c925a7825d4e39a39151ccdaac65389 (
plain)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | // Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#include <qpa/qplatforminputcontextfactory_p.h>#include <qpa/qplatforminputcontextplugin_p.h>#include <qpa/qplatforminputcontext.h>#include"private/qfactoryloader_p.h"#include"qguiapplication.h"#include"qdebug.h"#include <stdlib.h> QT_BEGIN_NAMESPACE using namespaceQt::StringLiterals;#if QT_CONFIG(settings)Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, icLoader,(QPlatformInputContextFactoryInterface_iid,"/platforminputcontexts"_L1,Qt::CaseInsensitive))#endif QStringList QPlatformInputContextFactory::keys(){#if QT_CONFIG(settings)returnicLoader()->keyMap().values();#elsereturnQStringList();#endif} QStringList QPlatformInputContextFactory::requested(){ QStringList imList; QByteArray env =qgetenv("QT_IM_MODULES");if(!env.isEmpty()) imList =QString::fromLocal8Bit(env).split(QChar::fromLatin1(';'),Qt::SkipEmptyParts);if(!imList.isEmpty())return imList; env =qgetenv("QT_IM_MODULE");if(!env.isEmpty()) imList = {QString::fromLocal8Bit(env)};return imList;} QPlatformInputContext *QPlatformInputContextFactory::create(const QStringList& keys){for(const QString &key : keys) {auto plugin =create(key);if(plugin)return plugin;}returnnullptr;} QPlatformInputContext *QPlatformInputContextFactory::create(const QString& key){#if QT_CONFIG(settings)if(!key.isEmpty()) { QStringList paramList = key.split(u':');const QString platform = paramList.takeFirst().toLower(); QPlatformInputContext *ic = qLoadPlugin<QPlatformInputContext, QPlatformInputContextPlugin>(icLoader(), platform, paramList);if(ic && ic->isValid())return ic;delete ic;}#elseQ_UNUSED(key);#endifreturnnullptr;} QPlatformInputContext *QPlatformInputContextFactory::create(){returncreate(requested());} QT_END_NAMESPACE
|