aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kamm <[email protected]>2011-02-08 13:29:21 +0100
committerChristian Kamm <[email protected]>2011-02-09 10:42:49 +0100
commitc935fd36d70dca2f52c42928ac3a50ad961d4592 (patch)
tree1ae53e960788d48689fb01a8a87b1ff20a7ff2db /src
parent2ec429e8ce7df1a017c63405442a36dd261142ac (diff)
qmldump: Use the new qmldump correctly.
Diffstat (limited to 'src')
-rw-r--r--src/libs/qmljs/qmljslink.cpp3
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.h3
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.cpp5
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.h3
-rw-r--r--src/plugins/qmljstools/qmljsplugindumper.cpp12
-rw-r--r--src/plugins/qmljstools/qmljsplugindumper.h5
6 files changed, 20 insertions, 11 deletions
diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp
index b4633095421..c5a2ca34522 100644
--- a/src/libs/qmljs/qmljslink.cpp
+++ b/src/libs/qmljs/qmljslink.cpp
@@ -291,7 +291,8 @@ ObjectValue *Link::importNonFile(Document::Ptr doc, const ImportInfo &importInfo
if (libraryInfo.dumpStatus() == LibraryInfo::DumpNotStartedOrRunning) {
ModelManagerInterface *modelManager = ModelManagerInterface::instance();
if (modelManager)
- modelManager->loadPluginTypes(libraryPath, importPath, packageName);
+ modelManager->loadPluginTypes(libraryPath, importPath,
+ packageName, version.toString());
warning(doc, locationFromRange(importInfo.ast()->firstSourceLocation(),
importInfo.ast()->lastSourceLocation()),
tr("Library contains C++ plugins, type dump is in progress."));
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h
index 15840d69ee7..1fa30b4196a 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.h
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h
@@ -131,7 +131,8 @@ public:
virtual QStringList importPaths() const = 0;
- virtual void loadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri) = 0;
+ virtual void loadPluginTypes(const QString &libraryPath, const QString &importPath,
+ const QString &importUri, const QString &importVersion) = 0;
virtual CppQmlTypeHash cppQmlTypes() const = 0;
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp
index 41a462c0c5c..754f606b024 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp
@@ -571,9 +571,10 @@ void ModelManager::updateImportPaths()
updateSourceFiles(importedFiles, true);
}
-void ModelManager::loadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri)
+void ModelManager::loadPluginTypes(const QString &libraryPath, const QString &importPath,
+ const QString &importUri, const QString &importVersion)
{
- m_pluginDumper->loadPluginTypes(libraryPath, importPath, importUri);
+ m_pluginDumper->loadPluginTypes(libraryPath, importPath, importUri, importVersion);
}
void ModelManager::queueCppQmlTypeUpdate(const CPlusPlus::Document::Ptr &doc)
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.h b/src/plugins/qmljstools/qmljsmodelmanager.h
index b669767693f..9adbb1ad03a 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.h
+++ b/src/plugins/qmljstools/qmljsmodelmanager.h
@@ -83,7 +83,8 @@ public:
virtual QStringList importPaths() const;
- virtual void loadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri);
+ virtual void loadPluginTypes(const QString &libraryPath, const QString &importPath,
+ const QString &importUri, const QString &importVersion);
virtual CppQmlTypeHash cppQmlTypes() const;
diff --git a/src/plugins/qmljstools/qmljsplugindumper.cpp b/src/plugins/qmljstools/qmljsplugindumper.cpp
index 28db6304f32..7ab0d9bcb23 100644
--- a/src/plugins/qmljstools/qmljsplugindumper.cpp
+++ b/src/plugins/qmljstools/qmljsplugindumper.cpp
@@ -55,16 +55,17 @@ PluginDumper::PluginDumper(ModelManager *modelManager)
connect(m_pluginWatcher, SIGNAL(fileChanged(QString)), SLOT(pluginChanged(QString)));
}
-void PluginDumper::loadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri)
+void PluginDumper::loadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri, const QString &importVersion)
{
// move to the owning thread
metaObject()->invokeMethod(this, "onLoadPluginTypes",
Q_ARG(QString, libraryPath),
Q_ARG(QString, importPath),
- Q_ARG(QString, importUri));
+ Q_ARG(QString, importUri),
+ Q_ARG(QString, importVersion));
}
-void PluginDumper::onLoadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri)
+void PluginDumper::onLoadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri, const QString &importVersion)
{
const QString canonicalLibraryPath = QDir::cleanPath(libraryPath);
if (m_runningQmldumps.values().contains(canonicalLibraryPath))
@@ -87,6 +88,7 @@ void PluginDumper::onLoadPluginTypes(const QString &libraryPath, const QString &
plugin.qmldirPath = canonicalLibraryPath;
plugin.importPath = importPath;
plugin.importUri = importUri;
+ plugin.importVersion = importVersion;
// watch plugin libraries
foreach (const QmlDirParser::Plugin &plugin, snapshot.libraryInfo(canonicalLibraryPath).plugins()) {
@@ -277,8 +279,10 @@ void PluginDumper::dump(const Plugin &plugin)
connect(process, SIGNAL(finished(int)), SLOT(qmlPluginTypeDumpDone(int)));
connect(process, SIGNAL(error(QProcess::ProcessError)), SLOT(qmlPluginTypeDumpError(QProcess::ProcessError)));
QStringList args;
- args << plugin.importPath;
+ args << QLatin1String("--notrelocatable"); // ### temporary until relocatable libraries work
args << plugin.importUri;
+ args << plugin.importVersion;
+ args << plugin.importPath;
process->start(info.qmlDumpPath, args);
m_runningQmldumps.insert(process, plugin.qmldirPath);
}
diff --git a/src/plugins/qmljstools/qmljsplugindumper.h b/src/plugins/qmljstools/qmljsplugindumper.h
index 99e4a147fc8..5ae24f9794a 100644
--- a/src/plugins/qmljstools/qmljsplugindumper.h
+++ b/src/plugins/qmljstools/qmljsplugindumper.h
@@ -59,12 +59,12 @@ public:
public:
void loadPluginTypes(const QString &libraryPath, const QString &importPath,
- const QString &importUri);
+ const QString &importUri, const QString &importVersion);
void scheduleCompleteRedump();
private slots:
void onLoadPluginTypes(const QString &libraryPath, const QString &importPath,
- const QString &importUri);
+ const QString &importUri, const QString &importVersion);
void dumpAllPlugins();
void qmlPluginTypeDumpDone(int exitCode);
void qmlPluginTypeDumpError(QProcess::ProcessError error);
@@ -76,6 +76,7 @@ private:
QString qmldirPath;
QString importPath;
QString importUri;
+ QString importVersion;
bool hasPredumpedQmlTypesFile() const;
QString predumpedQmlTypesFilePath() const;