From 08a8811da0402d2f0d487b65b831a3974690ac67 Mon Sep 17 00:00:00 2001 From: Debian Qt/KDE Maintainers Date: Tue, 5 Feb 2013 21:52:29 +0000 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 150a7456e..6abfdd5bf 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -2437,6 +2437,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 a3592f93d..f183c29ff 100644 --- a/src/declarative/qml/qdeclarativeimport.cpp +++ b/src/declarative/qml/qdeclarativeimport.cpp @@ -751,6 +751,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