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);
|
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,
|
void addModuleExportedImports(Storage::Synchronization::ModuleExportedImports &imports,
|
||||||
ModuleId moduleId,
|
ModuleId moduleId,
|
||||||
ModuleId cppModuleId,
|
ModuleId cppModuleId,
|
||||||
@@ -205,6 +210,9 @@ void addModuleExportedImports(Storage::Synchronization::ModuleExportedImports &i
|
|||||||
keyValue("module id", moduleId)};
|
keyValue("module id", moduleId)};
|
||||||
|
|
||||||
for (const QmlDirParser::Import &qmldirImport : qmldirImports) {
|
for (const QmlDirParser::Import &qmldirImport : qmldirImports) {
|
||||||
|
if (isOptionalImport(qmldirImport.flags))
|
||||||
|
continue;
|
||||||
|
|
||||||
Utils::PathString exportedModuleName{qmldirImport.module};
|
Utils::PathString exportedModuleName{qmldirImport.module};
|
||||||
ModuleId exportedModuleId = projectStorage.moduleId(exportedModuleName);
|
ModuleId exportedModuleId = projectStorage.moduleId(exportedModuleName);
|
||||||
addModuleExportedImport(imports,
|
addModuleExportedImport(imports,
|
||||||
|
@@ -1541,12 +1541,12 @@ TEST_F(ProjectStorageUpdater, synchronize_qmldir_imports_with_double_entries)
|
|||||||
updater.update(directories, {}, {}, {});
|
updater.update(directories, {}, {}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(ProjectStorageUpdater, synchronize_qmldir_optional_imports)
|
TEST_F(ProjectStorageUpdater, synchronize_qmldir_default_imports)
|
||||||
{
|
{
|
||||||
QString qmldir{R"(module Example
|
QString qmldir{R"(module Example
|
||||||
import Qml auto
|
import Qml auto
|
||||||
import QML 2.1
|
import QML 2.1
|
||||||
optional import Quick
|
default import Quick
|
||||||
)"};
|
)"};
|
||||||
setContent(u"/path/qmldir", qmldir);
|
setContent(u"/path/qmldir", qmldir);
|
||||||
|
|
||||||
@@ -1583,6 +1583,40 @@ TEST_F(ProjectStorageUpdater, synchronize_qmldir_optional_imports)
|
|||||||
updater.update(directories, {}, {}, {});
|
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)
|
TEST_F(ProjectStorageUpdater, update_path_watcher_directories)
|
||||||
{
|
{
|
||||||
EXPECT_CALL(patchWatcherMock,
|
EXPECT_CALL(patchWatcherMock,
|
||||||
|
Reference in New Issue
Block a user