summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-04-28 10:41:03 +0200
committercon <qtc-committer@nokia.com>2011-04-28 11:14:53 +0200
commit783779058b4a9aef8d7a147711185d6993abacce (patch)
treee78b6a1421096199bb52a22ebb4d7e2e901caa82
parent216cb89bd7455c46d2cfdc57729bf11a480e0f34 (diff)
downloadqt-creator-783779058b4a9aef8d7a147711185d6993abacce.tar.gz
QmlDump: fix path import dumps on Windows
Absolute file pathes containing drive identifiers do not work in qml. (C:\) workaround: use "." imports and setting the component url. Reviewed-by: Christian Kamm (cherry picked from commit 0c8b4e38fab1862e3427aac7e7db68623bc7f174)
-rw-r--r--share/qtcreator/qml/qmldump/main.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/share/qtcreator/qml/qmldump/main.cpp b/share/qtcreator/qml/qmldump/main.cpp
index 9d4df89861..1324396ce0 100644
--- a/share/qtcreator/qml/qmldump/main.cpp
+++ b/share/qtcreator/qml/qmldump/main.cpp
@@ -59,6 +59,8 @@
#include <signal.h>
#endif
+QString pluginImportPath;
+
void collectReachableMetaObjects(const QMetaObject *meta, QSet<const QMetaObject *> *metas)
{
if (! meta || metas->contains(meta))
@@ -188,7 +190,7 @@ QSet<const QMetaObject *> collectReachableMetaObjects(const QString &importCode,
code += " {}\n";
QDeclarativeComponent c(engine);
- c.setData(code, QUrl("typeinstance"));
+ c.setData(code, QUrl::fromLocalFile(pluginImportPath + "/typeinstance.qml"));
QObject *object = c.create();
if (object)
@@ -442,7 +444,7 @@ int main(int argc, char *argv[])
QString pluginImportUri;
QString pluginImportVersion;
- QString pluginImportPath;
+
bool relocatable = true;
bool pathImport = false;
if (args.size() >= 3) {
@@ -477,7 +479,7 @@ int main(int argc, char *argv[])
qWarning() << "Incorrect number of positional arguments";
return EXIT_INVALIDARGUMENTS;
}
- pluginImportPath = positionalArgs[1];
+ pluginImportPath = QDir::fromNativeSeparators(positionalArgs[1]);
if (positionalArgs.size() == 3)
pluginImportVersion = positionalArgs[2];
}
@@ -503,7 +505,7 @@ int main(int argc, char *argv[])
importCode += QString("import %0 %1\n").arg(pluginImportUri, pluginImportVersion).toAscii();
} else {
// pluginImportVersion can be empty
- importCode += QString("import \"%1\" %2\n").arg(pluginImportPath, pluginImportVersion).toAscii();
+ importCode += QString("import \".\" %2\n").arg(pluginImportVersion).toAscii();
}
// create a component with these imports to make sure the imports are valid
@@ -513,7 +515,7 @@ int main(int argc, char *argv[])
code += "QtObject {}";
QDeclarativeComponent c(engine);
- c.setData(code, QUrl("typelist"));
+ c.setData(code, QUrl::fromLocalFile(pluginImportPath + "/typelist.qml"));
c.create();
if (!c.errors().isEmpty()) {
foreach (const QDeclarativeError &error, c.errors())