diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp index f46f8f4258421b1b7fbf55d1107825c720121052..35b139602da33b0e507c8968fea2f6853b6e282c 100644 --- a/src/core/web_engine_library_info.cpp +++ b/src/core/web_engine_library_info.cpp @@ -216,26 +216,32 @@ QString dictionariesPath() if (!initialized) { initialized = true; - // First try to find dictionaries near the application. + const QByteArray fromEnv = qgetenv("QTWEBENGINE_DICTIONARIES_PATH"); + if (!fromEnv.isEmpty()) { + // Only search in QTWEBENGINE_DICTIONARIES_PATH if set + candidatePaths << QString::fromLocal8Bit(fromEnv); + } else { + // First try to find dictionaries near the application. #ifdef OS_MACOSX - QString resourcesDictionariesPath = getMainApplicationResourcesPath() - % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); - candidatePaths << resourcesDictionariesPath; + QString resourcesDictionariesPath = getMainApplicationResourcesPath() + % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); + candidatePaths << resourcesDictionariesPath; #endif - QString applicationDictionariesPath = QCoreApplication::applicationDirPath() - % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); - candidatePaths << applicationDictionariesPath; + QString applicationDictionariesPath = QCoreApplication::applicationDirPath() + % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); + candidatePaths << applicationDictionariesPath; - // Then try to find dictionaries near the installed library. + // Then try to find dictionaries near the installed library. #if defined(OS_MACOSX) && defined(QT_MAC_FRAMEWORK_BUILD) - QString frameworkDictionariesPath = getResourcesPath(frameworkBundle()) - % QLatin1String("/qtwebengine_dictionaries"); - candidatePaths << frameworkDictionariesPath; + QString frameworkDictionariesPath = getResourcesPath(frameworkBundle()) + % QLatin1String("/qtwebengine_dictionaries"); + candidatePaths << frameworkDictionariesPath; #endif - QString libraryDictionariesPath = QLibraryInfo::location(QLibraryInfo::DataPath) - % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); - candidatePaths << libraryDictionariesPath; + QString libraryDictionariesPath = QLibraryInfo::location(QLibraryInfo::DataPath) + % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); + candidatePaths << libraryDictionariesPath; + } Q_FOREACH (const QString &candidate, candidatePaths) { if (QFileInfo::exists(candidate)) {