diff --git a/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp b/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp index ffcf28d7658..4a6adfa10d5 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp @@ -9,6 +9,7 @@ #include #include +#include namespace QmlDesigner { @@ -50,6 +51,8 @@ void ModuleScanner::scan([[maybe_unused]] std::string_view modulePath) #ifdef QDS_HAS_QMLPRIVATE QDirIterator dirIterator{QString::fromUtf8(modulePath), QDir::Dirs, QDirIterator::Subdirectories}; + QMap moduleNames; + while (dirIterator.hasNext()) { auto directoryPath = dirIterator.next(); QString qmldirPath = directoryPath + "/qmldir"; @@ -69,6 +72,10 @@ void ModuleScanner::scan([[maybe_unused]] std::string_view modulePath) if (moduleName.isEmpty() || m_skip(moduleName)) continue; + if (moduleNames.contains(moduleName)) + continue; + + moduleNames.insert(moduleName, true); m_modules.push_back( Import::createLibraryImport(moduleName, createVersion(parser.components()))); }