qmlplugindump: Fix dumping with -path on Mac.
authorChristian Kamm <christian.d.kamm@nokia.com>
Wed, 29 Jun 2011 12:00:34 +0000 (14:00 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 29 Jun 2011 13:08:09 +0000 (15:08 +0200)
If the current working directory was a direct parent of the qmldir path
the exported modules had the path as the module URI on macs.

Also changes the QtQuick export back to 1.0 to make it work with
Qt 4.7.3. The version of that import statement does not actually matter
as long as it's valid.

Mirrors a change in Qt Creator:
http://codereview.qt.nokia.com/896

(cherry picked from commit d7ab0007d4b051f3cf12f01157b8b78d2fddf7c8)

Change-Id: Ib8caa8eda7f237b10e82df3afd560c118427aa8f
Reviewed-on: http://codereview.qt.nokia.com/897
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
tools/qmlplugindump/main.cpp

index 61564d4..9d14e36 100644 (file)
@@ -268,6 +268,9 @@ public:
                 if (qmlTyName.startsWith(relocatableModuleUri + QLatin1Char('/'))) {
                     qmlTyName.remove(0, relocatableModuleUri.size() + 1);
                 }
+                if (qmlTyName.startsWith("./")) {
+                    qmlTyName.remove(0, 2);
+                }
                 exports += enquote(QString("%1 %2.%3").arg(
                                        qmlTyName,
                                        QString::number(qmlTy->majorVersion()),
@@ -530,11 +533,16 @@ int main(int argc, char *argv[])
 
     QDeclarativeView view;
     QDeclarativeEngine *engine = view.engine();
-    if (!pluginImportPath.isEmpty())
+    if (!pluginImportPath.isEmpty()) {
+        QDir cur = QDir::current();
+        cur.cd(pluginImportPath);
+        pluginImportPath = cur.absolutePath();
+        QDir::setCurrent(pluginImportPath);
         engine->addImportPath(pluginImportPath);
+    }
 
     // find all QMetaObjects reachable from the builtin module
-    QByteArray importCode("import QtQuick 1.1\n");
+    QByteArray importCode("import QtQuick 1.0\n");
     QSet<const QMetaObject *> defaultReachable = collectReachableMetaObjects(importCode, engine);
 
     // this will hold the meta objects we want to dump information of