diff options
author | Liang Qi <liang.qi@qt.io> | 2016-05-19 11:14:18 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-05-19 11:14:18 +0200 |
commit | 17548a0b1965074fff5b3036f77ea8261a132c92 (patch) | |
tree | 25f1ec36d43d0e7ab4f3110929a2c3b39329a13e /src/virtualkeyboard/lipisharedrecognizer.cpp | |
parent | f58add00ffa5dd5b3fd7bc31bf3cacc452cb8e5c (diff) | |
parent | e99680e6577a52fb07096eb45095125bb90cf980 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
src/virtualkeyboard/lipisharedrecognizer.cpp
src/virtualkeyboard/styles/styles.pro
src/virtualkeyboard/virtualkeyboard.pro
Change-Id: I150f2ad265f8a7bd07be1d9415cdad854e200e87
Diffstat (limited to 'src/virtualkeyboard/lipisharedrecognizer.cpp')
-rw-r--r-- | src/virtualkeyboard/lipisharedrecognizer.cpp | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/virtualkeyboard/lipisharedrecognizer.cpp b/src/virtualkeyboard/lipisharedrecognizer.cpp index f518de72..2d89e377 100644 --- a/src/virtualkeyboard/lipisharedrecognizer.cpp +++ b/src/virtualkeyboard/lipisharedrecognizer.cpp @@ -50,6 +50,7 @@ namespace QtVirtualKeyboard { int LipiSharedRecognizer::s_lipiEngineRefCount = 0; QString LipiSharedRecognizer::s_lipiRoot; +QString LipiSharedRecognizer::s_lipiLib; void *LipiSharedRecognizer::s_lipiEngineHandle = 0; LipiSharedRecognizer::FN_PTR_CREATELTKLIPIENGINE LipiSharedRecognizer::s_createLTKLipiEngine = 0; LipiSharedRecognizer::FN_PTR_DELETELTKLIPIENGINE LipiSharedRecognizer::s_deleteLTKLipiEngine = 0; @@ -181,18 +182,31 @@ int LipiSharedRecognizer::loadLipiInterface() if (++s_lipiEngineRefCount == 1) { if (s_lipiRoot.isEmpty()) { - if (qEnvironmentVariableIsEmpty("LIPI_ROOT")) { - s_lipiRoot = QDir(QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/lipi_toolkit").absolutePath(); - qputenv("LIPI_ROOT", s_lipiRoot.toLatin1()); - } else { - s_lipiRoot = qgetenv("LIPI_ROOT"); - } + /* LIPI_ROOT defines the root directory for lipi-toolkit project. + LIPI_LIB is an extension implemented for QtVirtualKeyboard and + allows using different location for lipi-toolkit plugins. + + LIPI_LIB defaults to LIPI_ROOT + "/lib". + */ + bool lipiRootVarIsEmpty = qEnvironmentVariableIsEmpty("LIPI_ROOT"); + s_lipiRoot = lipiRootVarIsEmpty ? + QDir(QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/lipi_toolkit").absolutePath() : + qgetenv("LIPI_ROOT"); + + bool lipiLibVarIsEmpty = qEnvironmentVariableIsEmpty("LIPI_LIB"); + if (!lipiLibVarIsEmpty) + s_lipiLib = qgetenv("LIPI_LIB"); + else if (!lipiRootVarIsEmpty) + s_lipiLib = s_lipiRoot + "/lib"; + else + s_lipiLib = QDir(QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/lipi_toolkit").absolutePath(); } QScopedPointer<LTKOSUtil> osUtil(LTKOSUtilFactory::getInstance()); const string lipiRootPath(QDir::toNativeSeparators(s_lipiRoot).toStdString()); + const string lipiLibPath(QDir::toNativeSeparators(s_lipiLib).toStdString()); - int result = osUtil->loadSharedLib(lipiRootPath, LIPIENGINE_MODULE_STR, &s_lipiEngineHandle); + int result = osUtil->loadSharedLib(lipiLibPath, LIPIENGINE_MODULE_STR, &s_lipiEngineHandle); if (result != SUCCESS) { qWarning() << QString("Error %1: Could not open shared library for module '%2'").arg(result).arg(LIPIENGINE_MODULE_STR); return result; @@ -216,6 +230,7 @@ int LipiSharedRecognizer::loadLipiInterface() s_lipiEngine = s_createLTKLipiEngine(); s_lipiEngine->setLipiRootPath(lipiRootPath); + s_lipiEngine->setLipiLibPath(lipiLibPath); #if 0 s_lipiEngine->setLipiLogFileName(QDir::toNativeSeparators(QString("%1/lipi.log").arg(s_lipiRoot)).toStdString()); s_lipiEngine->setLipiLogLevel("DEBUG"); |