From 920da89143e7cdac6a2bc64d805caa2ed5dd16e1 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 1 Aug 2024 14:13:53 +0200 Subject: [PATCH] QmlDesigner: Remove project type traits Project type traits are increasing the code complexity in the updater by quite lot. The discover can be done in an other way too. Change-Id: Ied9b7df445e854c76243ece6666690ea10b8d33d Reviewed-by: Tim Jenssen --- .../designercore/include/nodemetainfo.h | 2 - .../designercore/metainfo/nodemetainfo.cpp | 38 ----------- .../projectstorage/projectstorageinfotypes.h | 8 +-- .../tests/printers/gtest-creator-printing.cpp | 6 -- .../unittests/metainfo/nodemetainfo-test.cpp | 68 ------------------- 5 files changed, 1 insertion(+), 121 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h index 887990c95e6..ceb5fe8eff2 100644 --- a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h +++ b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h @@ -75,8 +75,6 @@ public: MetaInfoType type() const; bool isFileComponent() const; - bool isProjectComponent() const; - bool isInProjectModule() const; FlagIs canBeContainer() const; FlagIs forceClip() const; FlagIs doesLayoutChildren() const; diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 439a963bb4c..0a0e9e88604 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -1538,44 +1538,6 @@ bool NodeMetaInfo::isFileComponent() const } } -bool NodeMetaInfo::isProjectComponent() const -{ - if constexpr (useProjectStorage()) { - if (!isValid()) - return false; - - using NanotraceHR::keyValue; - NanotraceHR::Tracer tracer{"is project component"_t, category(), keyValue("type id", m_typeId)}; - - auto isProjectComponent = typeData().traits.isProjectComponent; - - tracer.end(keyValue("is project component", isProjectComponent)); - - return isProjectComponent; - } - - return false; -} - -bool NodeMetaInfo::isInProjectModule() const -{ - if constexpr (useProjectStorage()) { - if (!isValid()) - return false; - - using NanotraceHR::keyValue; - NanotraceHR::Tracer tracer{"is project module"_t, category(), keyValue("type id", m_typeId)}; - - auto isInProjectModule = typeData().traits.isInProjectModule; - - tracer.end(keyValue("is project module", isInProjectModule)); - - return isInProjectModule; - } - - return false; -} - FlagIs NodeMetaInfo::canBeContainer() const { if constexpr (useProjectStorage()) { diff --git a/src/plugins/qmldesigner/designercore/projectstorage/projectstorageinfotypes.h b/src/plugins/qmldesigner/designercore/projectstorage/projectstorageinfotypes.h index e3da1747a71..010c9a7e1cc 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/projectstorageinfotypes.h +++ b/src/plugins/qmldesigner/designercore/projectstorage/projectstorageinfotypes.h @@ -131,8 +131,6 @@ struct TypeTraits : kind{TypeTraitsKind::None} , isEnum{false} , isFileComponent{false} - , isProjectComponent{false} - , isInProjectModule{false} , usesCustomParser{false} , dummy{0U} , canBeContainer{FlagIs::False} @@ -181,8 +179,6 @@ struct TypeTraits keyValue("kind", typeTraits.kind), keyValue("is enum", typeTraits.isEnum), keyValue("is file component", typeTraits.isFileComponent), - keyValue("is project component", typeTraits.isProjectComponent), - keyValue("is in project module", typeTraits.isInProjectModule), keyValue("uses custom parser", typeTraits.usesCustomParser), keyValue("can be container", typeTraits.canBeContainer), keyValue("force clip", typeTraits.forceClip), @@ -207,10 +203,8 @@ struct TypeTraits TypeTraitsKind kind : 4; unsigned int isEnum : 1; unsigned int isFileComponent : 1; - unsigned int isProjectComponent : 1; - unsigned int isInProjectModule : 1; unsigned int usesCustomParser : 1; - unsigned int dummy : 23; + unsigned int dummy : 25; }; unsigned int type; diff --git a/tests/unit/tests/printers/gtest-creator-printing.cpp b/tests/unit/tests/printers/gtest-creator-printing.cpp index bbbe248d8bf..4d70b5b68bf 100644 --- a/tests/unit/tests/printers/gtest-creator-printing.cpp +++ b/tests/unit/tests/printers/gtest-creator-printing.cpp @@ -614,12 +614,6 @@ std::ostream &operator<<(std::ostream &out, TypeTraits traits) if (traits.isFileComponent) out << " | isFileComponent"; - if (traits.isProjectComponent) - out << " | isProjectComponent"; - - if (traits.isInProjectModule) - out << " | isInProjectModule"; - if (traits.usesCustomParser) out << " | usesCustomParser"; diff --git a/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp b/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp index 671317649fa..b17a38098ee 100644 --- a/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp +++ b/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp @@ -230,74 +230,6 @@ TEST_F(NodeMetaInfo, component_is_file_component) ASSERT_TRUE(isFileComponent); } -TEST_F(NodeMetaInfo, is_project_component) -{ - auto moduleId = projectStorageMock.createModule("/path/to/project", ModuleKind::PathLibrary); - TypeTraits traits{TypeTraitsKind::Reference}; - traits.isProjectComponent = true; - auto typeId = projectStorageMock.createType(moduleId, "Foo", traits); - QmlDesigner::NodeMetaInfo metaInfo{typeId, &projectStorageMock}; - - bool isProjectComponent = metaInfo.isProjectComponent(); - - ASSERT_TRUE(isProjectComponent); -} - -TEST_F(NodeMetaInfo, is_not_project_component) -{ - using QmlDesigner::Storage::TypeTraits; - auto moduleId = projectStorageMock.createModule("/path/to/project", ModuleKind::PathLibrary); - auto typeId = projectStorageMock.createType(moduleId, "Foo", {}); - QmlDesigner::NodeMetaInfo metaInfo{typeId, &projectStorageMock}; - - bool isProjectComponent = metaInfo.isProjectComponent(); - - ASSERT_FALSE(isProjectComponent); -} - -TEST_F(NodeMetaInfo, invalid_is_not_project_component) -{ - QmlDesigner::NodeMetaInfo metaInfo; - - bool isProjectComponent = metaInfo.isProjectComponent(); - - ASSERT_FALSE(isProjectComponent); -} - -TEST_F(NodeMetaInfo, is_in_project_module) -{ - auto moduleId = projectStorageMock.createModule("/path/to/project", ModuleKind::PathLibrary); - TypeTraits traits{TypeTraitsKind::Reference}; - traits.isInProjectModule = true; - auto typeId = projectStorageMock.createType(moduleId, "Foo", traits); - QmlDesigner::NodeMetaInfo metaInfo{typeId, &projectStorageMock}; - - bool isInProjectModule = metaInfo.isInProjectModule(); - - ASSERT_TRUE(isInProjectModule); -} - -TEST_F(NodeMetaInfo, is_not_in_project_module) -{ - using QmlDesigner::Storage::TypeTraits; - auto moduleId = projectStorageMock.createModule("/path/to/project", ModuleKind::PathLibrary); - auto typeId = projectStorageMock.createType(moduleId, "Foo", {}); - QmlDesigner::NodeMetaInfo metaInfo{typeId, &projectStorageMock}; - - bool isInProjectModule = metaInfo.isInProjectModule(); - - ASSERT_FALSE(isInProjectModule); -} - -TEST_F(NodeMetaInfo, invalid_is_not_in_project_module) -{ - QmlDesigner::NodeMetaInfo metaInfo; - - bool isInProjectModule = metaInfo.isInProjectModule(); - - ASSERT_FALSE(isInProjectModule); -} - TEST_F(NodeMetaInfo, has_property) { auto metaInfo = model.qtQuickItemMetaInfo();