From 413722895ac97a87315568483bfc6b2cff749ca1 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Sun, 15 Jun 2025 17:58:17 +0200 Subject: [PATCH] QmlDesigner: Remove skiplist in qmltypes parser It is already fixed in Qt. Change-Id: I387a3c7cfd28741afa5f790d3b63e6a62e56f1d6 Reviewed-by: Thomas Hartmann --- .../projectstorage/qmltypesparser.cpp | 33 ------------------- .../projectstorage/qmltypesparser-test.cpp | 22 ------------- 2 files changed, 55 deletions(-) diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/qmltypesparser.cpp b/src/plugins/qmldesigner/libs/designercore/projectstorage/qmltypesparser.cpp index af67bedd9fc..5abb2be6981 100644 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/qmltypesparser.cpp +++ b/src/plugins/qmldesigner/libs/designercore/projectstorage/qmltypesparser.cpp @@ -499,35 +499,6 @@ void addType(Storage::Synchronization::Types &types, tracer.end(keyValue("type", type)); } -using namespace Qt::StringLiterals; - -constexpr auto skipLists = std::make_tuple( - std::pair{std::pair{"QtQuick.Templates"_sv, ModuleKind::CppLibrary}, std::array{"QQuickItem"_L1}}); - -Utils::span getSkipList(const Storage::Module &module) -{ - static constexpr Utils::span emptySkipList; - auto currentSkipList = emptySkipList; - - std::apply( - [&](const auto &entry) { - if (entry.first.first == module.name && entry.first.second == module.kind) - currentSkipList = entry.second; - }, - skipLists); - - return currentSkipList; -} - -bool skipType(const QQmlJSExportedScope &object, Utils::span skipList) -{ - NanotraceHR::Tracer tracer{"skip types", category()}; - - return std::any_of(skipList.begin(), skipList.end(), [&](const QLatin1StringView skip) { - return object.scope->internalName() == skip; - }); -} - void addTypes(Storage::Synchronization::Types &types, const Storage::Synchronization::DirectoryInfo &directoryInfo, const QList &objects, @@ -539,12 +510,8 @@ void addTypes(Storage::Synchronization::Types &types, NanotraceHR::Tracer tracer{"add types", category()}; types.reserve(Utils::usize(objects) + types.size()); - const auto skipList = getSkipList(storage.module(directoryInfo.moduleId)); for (const auto &object : objects) { - if (skipType(object, skipList)) - continue; - addType(types, directoryInfo.sourceId, directoryInfo.moduleId, diff --git a/tests/unit/tests/unittests/projectstorage/qmltypesparser-test.cpp b/tests/unit/tests/unittests/projectstorage/qmltypesparser-test.cpp index 089e65b9188..efa32a7ed18 100644 --- a/tests/unit/tests/unittests/projectstorage/qmltypesparser-test.cpp +++ b/tests/unit/tests/unittests/projectstorage/qmltypesparser-test.cpp @@ -890,28 +890,6 @@ TEST_F(QmlTypesParser, default_property) ElementsAre(Field("Synchronization::Type::defaultPropertyName", &Synchronization::Type::defaultPropertyName, Eq("children")))); } -TEST_F(QmlTypesParser, skip_template_item) -{ - ModuleId moduleId = storage.moduleId("QtQuick.Templates", ModuleKind::CppLibrary); - Synchronization::DirectoryInfo directoryInfo{qmltypesFileSourceId.directoryPathId(), - qmltypesFileSourceId, - moduleId, - Synchronization::FileType::QmlTypes}; - QString source{R"(import QtQuick.tooling 1.2 - Module{ - Component { name: "QQuickItem"} - Component { name: "QQmlComponent"}})"}; - - parser.parse(source, imports, types, directoryInfo, Storage::IsInsideProject::No); - - ASSERT_THAT(types, - UnorderedElementsAre(IsType("QQmlComponent", - Synchronization::ImportedType{}, - Synchronization::ImportedType{}, - Storage::TypeTraitsKind::Reference, - qmltypesFileSourceId))); -} - TEST_F(QmlTypesParser, is_singleton) { QString source{R"(import QtQuick.tooling 1.2