diff options
author | Marco Bubke <marco.bubke@qt.io> | 2022-02-17 14:54:47 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2022-02-17 16:22:15 +0000 |
commit | f6cff719a9fe03ea4a7c4bf077be56cf37219315 (patch) | |
tree | 258245859433c3bc1162e5b5660bf3e27d97c961 | |
parent | f54867e844682db7fe0a6297617c84c77935aa56 (diff) | |
download | qt-creator-f6cff719a9fe03ea4a7c4bf077be56cf37219315.tar.gz |
QmlDesigner: Fix ModuleExportedImports
There are Qml modules and C++ modules. For reexports a Qml import should
reference only a Qml reexport but not a C++ reexport.
Change-Id: I79f50f2b29334c46f915884b7db2155064a3550a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/designercore/projectstorage/projectstorageupdater.cpp | 11 | ||||
-rw-r--r-- | tests/unit/unittest/projectstorageupdater-test.cpp | 12 |
2 files changed, 14 insertions, 9 deletions
diff --git a/src/plugins/qmldesigner/designercore/projectstorage/projectstorageupdater.cpp b/src/plugins/qmldesigner/designercore/projectstorage/projectstorageupdater.cpp index df83d96bac..1c130de81e 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/projectstorageupdater.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/projectstorageupdater.cpp @@ -140,6 +140,7 @@ void addDependencies(Storage::Imports &dependencies, void addModuleExportedImports(Storage::ModuleExportedImports &imports, ModuleId moduleId, + ModuleId cppModuleId, const QList<QmlDirParser::Import> &qmldirImports, ProjectStorageInterface &projectStorage) { @@ -155,7 +156,7 @@ void addModuleExportedImports(Storage::ModuleExportedImports &imports, ModuleId exportedCppModuleId = projectStorage.moduleId( Utils::PathString{qmldirImport.module} + "-cppnative"); - imports.emplace_back(moduleId, + imports.emplace_back(cppModuleId, exportedCppModuleId, Storage::Version{}, Storage::IsAutoVersion::No); @@ -232,10 +233,15 @@ void ProjectStorageUpdater::updateQmldirs(const QStringList &qmlDirs, Utils::PathString moduleName{parser.typeNamespace()}; ModuleId moduleId = m_projectStorage.moduleId(moduleName); + ModuleId cppModuleId = m_projectStorage.moduleId(moduleName + "-cppnative"); auto imports = filterMultipleEntries(parser.imports()); - addModuleExportedImports(package.moduleExportedImports, moduleId, imports, m_projectStorage); + addModuleExportedImports(package.moduleExportedImports, + moduleId, + cppModuleId, + imports, + m_projectStorage); package.updatedModuleIds.push_back(moduleId); const auto qmlProjectDatas = m_projectStorage.fetchProjectDatas(qmlDirSourceId); @@ -245,7 +251,6 @@ void ProjectStorageUpdater::updateQmldirs(const QStringList &qmlDirs, auto qmlTypes = filterMultipleEntries(parser.typeInfos()); if (!qmlTypes.isEmpty()) { - ModuleId cppModuleId = m_projectStorage.moduleId(moduleName + "-cppnative"); parseTypeInfos(qmlTypes, filterMultipleEntries(parser.dependencies()), imports, diff --git a/tests/unit/unittest/projectstorageupdater-test.cpp b/tests/unit/unittest/projectstorageupdater-test.cpp index 051959a74c..1016735280 100644 --- a/tests/unit/unittest/projectstorageupdater-test.cpp +++ b/tests/unit/unittest/projectstorageupdater-test.cpp @@ -1161,7 +1161,7 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmldirImports) qmlModuleId, Storage::Version{}, IsAutoVersion::Yes}, - ModuleExportedImport{exampleModuleId, + ModuleExportedImport{exampleCppNativeModuleId, qmlCppNativeModuleId, Storage::Version{}, IsAutoVersion::No}, @@ -1169,7 +1169,7 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmldirImports) builtinModuleId, Storage::Version{2, 1}, IsAutoVersion::No}, - ModuleExportedImport{exampleModuleId, + ModuleExportedImport{exampleCppNativeModuleId, builtinCppNativeModuleId, Storage::Version{}, IsAutoVersion::No}, @@ -1177,7 +1177,7 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmldirImports) quickModuleId, Storage::Version{}, IsAutoVersion::No}, - ModuleExportedImport{exampleModuleId, + ModuleExportedImport{exampleCppNativeModuleId, quickCppNativeModuleId, Storage::Version{}, IsAutoVersion::No})), @@ -1218,7 +1218,7 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmldirImportsWithDoubleEntries) qmlModuleId, Storage::Version{}, IsAutoVersion::Yes}, - ModuleExportedImport{exampleModuleId, + ModuleExportedImport{exampleCppNativeModuleId, qmlCppNativeModuleId, Storage::Version{}, IsAutoVersion::No}, @@ -1226,7 +1226,7 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmldirImportsWithDoubleEntries) builtinModuleId, Storage::Version{2, 1}, IsAutoVersion::No}, - ModuleExportedImport{exampleModuleId, + ModuleExportedImport{exampleCppNativeModuleId, builtinCppNativeModuleId, Storage::Version{}, IsAutoVersion::No}, @@ -1234,7 +1234,7 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmldirImportsWithDoubleEntries) quickModuleId, Storage::Version{}, IsAutoVersion::No}, - ModuleExportedImport{exampleModuleId, + ModuleExportedImport{exampleCppNativeModuleId, quickCppNativeModuleId, Storage::Version{}, IsAutoVersion::No})), |