summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2022-02-17 14:54:47 +0100
committerMarco Bubke <marco.bubke@qt.io>2022-02-17 16:22:15 +0000
commitf6cff719a9fe03ea4a7c4bf077be56cf37219315 (patch)
tree258245859433c3bc1162e5b5660bf3e27d97c961
parentf54867e844682db7fe0a6297617c84c77935aa56 (diff)
downloadqt-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.cpp11
-rw-r--r--tests/unit/unittest/projectstorageupdater-test.cpp12
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})),