qt-multiarch-plugin-path-compat
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Fri, 1 May 2015 19:35:39 +0000 (19:35 +0000)
committerLisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Fri, 1 May 2015 19:35:39 +0000 (19:35 +0000)
Gbp-Pq: Name qt-multiarch-plugin-path-compat.diff

src/corelib/kernel/qcoreapplication.cpp
src/declarative/qml/qdeclarativeimport.cpp

index 2001362d2f1aad8a1f4b31faf69ff0de1737a71e..d6c4cbc28629e68acbcc07e9b8b452c50dcda384 100644 (file)
@@ -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,
index 35a29ad36936495bcb052624c24a0e66c5767d67..0e1f7df7abe70ce00094ddd796498221bf968d20 100644 (file)
@@ -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