From 6ea088c02f9b0c61a8e9df1472b0ddfe544eb601 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 11 Jan 2021 14:09:51 +0100 Subject: QmlJS: Fix handling multiple import paths into same module It is possible to import components of different paths to fill a module. Take further paths into account when looking up types. Fixes: QTCREATORBUG-24405 Change-Id: I8d6bf0a324ea9c0d1fe9d91b40857f91f00dd662 Reviewed-by: Ulf Hermann Reviewed-by: Fawzi Mohamed --- src/libs/qmljs/qmljsplugindumper.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/libs/qmljs/qmljsplugindumper.cpp') diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp index 9508c13d31..730743f890 100644 --- a/src/libs/qmljs/qmljsplugindumper.cpp +++ b/src/libs/qmljs/qmljsplugindumper.cpp @@ -421,16 +421,17 @@ QString PluginDumper::buildQmltypesPath(const QString &name) const version = m.captured("major") + QLatin1Char('.') + m.captured("minor"); } - const QString path = modulePath(qualifiedName, version, m_modelManager->importPathsNames()); + const QStringList paths = modulePaths(qualifiedName, version, m_modelManager->importPathsNames()); - if (path.isEmpty()) + if (paths.isEmpty()) return QString(); - QDirIterator it(path, QStringList { "*.qmltypes" }, QDir::Files); - - if (it.hasNext()) - return it.next(); + for (const QString &path : paths) { + QDirIterator it(path, QStringList { "*.qmltypes" }, QDir::Files); + if (it.hasNext()) + return it.next(); + } return QString(); } -- cgit v1.2.3