QmlDesigner: Skip non property

Task-number: QDS-11951
Change-Id: Ic84f46b74f9c65501bb4f0f9883de1bceb176818
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2024-04-23 15:54:59 +02:00
parent 280239ca36
commit 7f8d7f511d
2 changed files with 44 additions and 2 deletions

View File

@@ -191,6 +191,11 @@ void addModuleExportedImport(Storage::Synchronization::ModuleExportedImports &im
imports.emplace_back(moduleId, exportedModuleId, version, isAutoVersion);
}
bool isOptionalImport(QmlDirParser::Import::Flags flags)
{
return flags & QmlDirParser::Import::Optional && !(flags & QmlDirParser::Import::OptionalDefault);
}
void addModuleExportedImports(Storage::Synchronization::ModuleExportedImports &imports,
ModuleId moduleId,
ModuleId cppModuleId,
@@ -205,6 +210,9 @@ void addModuleExportedImports(Storage::Synchronization::ModuleExportedImports &i
keyValue("module id", moduleId)};
for (const QmlDirParser::Import &qmldirImport : qmldirImports) {
if (isOptionalImport(qmldirImport.flags))
continue;
Utils::PathString exportedModuleName{qmldirImport.module};
ModuleId exportedModuleId = projectStorage.moduleId(exportedModuleName);
addModuleExportedImport(imports,

View File

@@ -1541,12 +1541,12 @@ TEST_F(ProjectStorageUpdater, synchronize_qmldir_imports_with_double_entries)
updater.update(directories, {}, {}, {});
}
TEST_F(ProjectStorageUpdater, synchronize_qmldir_optional_imports)
TEST_F(ProjectStorageUpdater, synchronize_qmldir_default_imports)
{
QString qmldir{R"(module Example
import Qml auto
import QML 2.1
optional import Quick
default import Quick
)"};
setContent(u"/path/qmldir", qmldir);
@@ -1583,6 +1583,40 @@ TEST_F(ProjectStorageUpdater, synchronize_qmldir_optional_imports)
updater.update(directories, {}, {}, {});
}
TEST_F(ProjectStorageUpdater, do_not_synchronize_qmldir_optional_imports)
{
QString qmldir{R"(module Example
import Qml auto
import QML 2.1
optional import Quick
)"};
setContent(u"/path/qmldir", qmldir);
EXPECT_CALL(projectStorageMock,
synchronize(
AllOf(Field(&SynchronizationPackage::moduleExportedImports,
UnorderedElementsAre(ModuleExportedImport{exampleModuleId,
qmlModuleId,
Storage::Version{},
IsAutoVersion::Yes},
ModuleExportedImport{exampleCppNativeModuleId,
qmlCppNativeModuleId,
Storage::Version{},
IsAutoVersion::No},
ModuleExportedImport{exampleModuleId,
builtinModuleId,
Storage::Version{2, 1},
IsAutoVersion::No},
ModuleExportedImport{exampleCppNativeModuleId,
builtinCppNativeModuleId,
Storage::Version{},
IsAutoVersion::No})),
Field(&SynchronizationPackage::updatedModuleIds,
ElementsAre(exampleModuleId)))));
updater.update(directories, {}, {}, {});
}
TEST_F(ProjectStorageUpdater, update_path_watcher_directories)
{
EXPECT_CALL(patchWatcherMock,