aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/lipisharedrecognizer.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-05-19 11:14:18 +0200
committerLiang Qi <liang.qi@qt.io>2016-05-19 11:14:18 +0200
commit17548a0b1965074fff5b3036f77ea8261a132c92 (patch)
tree25f1ec36d43d0e7ab4f3110929a2c3b39329a13e /src/virtualkeyboard/lipisharedrecognizer.cpp
parentf58add00ffa5dd5b3fd7bc31bf3cacc452cb8e5c (diff)
parente99680e6577a52fb07096eb45095125bb90cf980 (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.cpp29
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");