From a4dc49f1ad3ba43d2798011c5f9ce4f0aa3c68f1 Mon Sep 17 00:00:00 2001 From: Debian Qt/KDE Maintainers Date: Sun, 14 Jul 2019 11:19:27 +0100 Subject: [PATCH] qt-multiarch-plugin-path-compat Gbp-Pq: Name qt-multiarch-plugin-path-compat.diff --- src/corelib/kernel/qcoreapplication.cpp | 17 +++++++++++++++++ src/declarative/qml/qdeclarativeimport.cpp | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 83956dd83..ab5889dc6 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -2531,6 +2531,23 @@ QStringList QCoreApplication::libraryPaths() if (!app_libpaths->contains(installPathPlugins)) app_libpaths->append(installPathPlugins); } + QString pathSep("/"); + QStringList dirnames = QString(installPathPlugins).split(QLatin1Char('/'), QString::SkipEmptyParts); + if (dirnames[0] == QLatin1String("usr") && dirnames[1] == QLatin1String("lib") && dirnames[3] == QLatin1String("qt4")) + { + QString legacyPathPlugins = pathSep; + int i = 0; + for (QStringList::const_iterator it = dirnames.constBegin(); it != dirnames.constEnd(); ++it) { + if (++i == 3) + continue; + legacyPathPlugins = legacyPathPlugins + QString(*it) + pathSep; + } + if (QFile::exists(legacyPathPlugins)) { + legacyPathPlugins = QDir(legacyPathPlugins).canonicalPath(); + if (!app_libpaths->contains(legacyPathPlugins)) + app_libpaths->append(legacyPathPlugins); + } + } #endif // If QCoreApplication is not yet instantiated, diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp index 26ac527f1..e09691e1d 100644 --- a/src/declarative/qml/qdeclarativeimport.cpp +++ b/src/declarative/qml/qdeclarativeimport.cpp @@ -770,6 +770,22 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e) addImportPath(installImportsPath); } #else + QStringList dirnames = installImportsPath.split(QLatin1Char('/'), QString::SkipEmptyParts); + if (dirnames[0] == QLatin1String("usr") && dirnames[1] == QLatin1String("lib") && dirnames[3] == QLatin1String("qt4")) + { + QString pathSep("/"); + QString legacyImportPath = pathSep; + int i = 0; + for (QStringList::const_iterator it = dirnames.constBegin(); it != dirnames.constEnd(); ++it) { + if (++i == 3) + continue; + legacyImportPath = legacyImportPath + *it + pathSep; + } + if (QFile::exists(legacyImportPath)) { + addImportPath(legacyImportPath); + } + } + addImportPath(installImportsPath); #endif -- 2.30.2