From: Debian Qt/KDE Maintainers Date: Wed, 18 Apr 2018 20:45:31 +0000 (+0100) Subject: qt-multiarch-plugin-path-compat X-Git-Tag: archive/raspbian/4%4.8.7+dfsg-15+rpi1^2~16 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a0110d662db3b1dbb99c27f26f16e5e95e9a695f;p=qt4-x11.git qt-multiarch-plugin-path-compat Gbp-Pq: Name qt-multiarch-plugin-path-compat.diff --- 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