forked from qt-creator/qt-creator
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:
@@ -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,
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user