aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFawzi Mohamed <fawzi.mohamed@digia.com>2014-01-16 11:43:59 +0100
committerFawzi Mohamed <fawzi.mohamed@digia.com>2014-01-16 15:40:24 +0100
commita04a16538555d0db110802d474aa999d316c4a62 (patch)
tree819466e51961731e43cac53cc6366b709960116b /src
parent6d3939dbfdf32b6a8d398c281a6c272c70c46f8f (diff)
qml: avoid dumping or reading type info multiple times
Change-Id: Id0c52f6a96a5c36893f64cbc96cc7eee300e6afa Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmljstools/qmljsplugindumper.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/plugins/qmljstools/qmljsplugindumper.cpp b/src/plugins/qmljstools/qmljsplugindumper.cpp
index 01c2d8518e..71d0070870 100644
--- a/src/plugins/qmljstools/qmljsplugindumper.cpp
+++ b/src/plugins/qmljstools/qmljsplugindumper.cpp
@@ -171,12 +171,15 @@ void PluginDumper::onLoadPluginTypes(const QString &libraryPath, const QString &
// add default qmltypes file if it exists
const QLatin1String defaultQmltypesFileName("plugins.qmltypes");
const QString defaultQmltypesPath = makeAbsolute(defaultQmltypesFileName, canonicalLibraryPath);
- if (QFile::exists(defaultQmltypesPath))
+ if (!plugin.typeInfoPaths.contains(defaultQmltypesPath) && QFile::exists(defaultQmltypesPath))
plugin.typeInfoPaths += defaultQmltypesPath;
// add typeinfo files listed in qmldir
- foreach (const QmlDirParser::TypeInfo &typeInfo, libraryInfo.typeInfos())
- plugin.typeInfoPaths += makeAbsolute(typeInfo.fileName, canonicalLibraryPath);
+ foreach (const QmlDirParser::TypeInfo &typeInfo, libraryInfo.typeInfos()) {
+ QString pathNow = makeAbsolute(typeInfo.fileName, canonicalLibraryPath);
+ if (!plugin.typeInfoPaths.contains(pathNow) && QFile::exists(pathNow))
+ plugin.typeInfoPaths += pathNow;
+ }
// watch plugin libraries
foreach (const QmlDirParser::Plugin &plugin, snapshot.libraryInfo(canonicalLibraryPath).plugins()) {