From 056db316f926607db0922d03746f91317410ad66 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 20 Apr 2022 17:09:50 +0200 Subject: QmlDesigner: Ignore properties without type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QDS-6775 Change-Id: I6c280200348058de4d2ee64e5eee3856fa77da50 Reviewed-by: Henning Gründl --- .../designercore/projectstorage/qmltypesparser.cpp | 3 +++ tests/unit/unittest/qmltypesparser-test.cpp | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp b/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp index 664bd8f077..796f8a9977 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp @@ -218,6 +218,9 @@ Storage::PropertyDeclarations createProperties( propertyDeclarations.reserve(Utils::usize(qmlProperties)); for (const QQmlJSMetaProperty &qmlProperty : qmlProperties) { + if (qmlProperty.typeName().isEmpty()) + continue; + Utils::SmallString propertyTypeName{ fullyQualifiedTypeName(qmlProperty.typeName(), componentNameWithoutNamespace)}; diff --git a/tests/unit/unittest/qmltypesparser-test.cpp b/tests/unit/unittest/qmltypesparser-test.cpp index 521019429c..9169d6b29a 100644 --- a/tests/unit/unittest/qmltypesparser-test.cpp +++ b/tests/unit/unittest/qmltypesparser-test.cpp @@ -304,6 +304,26 @@ TEST_F(QmlTypesParser, PropertiesWithQualifiedTypes) Storage::PropertyDeclarationTraits::None))))); } +TEST_F(QmlTypesParser, PropertiesWithoutType) +{ + QString source{R"(import QtQuick.tooling 1.2 + Module{ + Component { name: "QObject" + Property { name: "objectName"} + Property { name: "target"; type: "QObject"; isPointer: true } + }})"}; + + parser.parse(source, imports, types, projectData); + + ASSERT_THAT(types, + ElementsAre( + Field(&Storage::Type::propertyDeclarations, + UnorderedElementsAre( + IsPropertyDeclaration("target", + Storage::ImportedType{"QObject"}, + Storage::PropertyDeclarationTraits::IsPointer))))); +} + TEST_F(QmlTypesParser, Functions) { QString source{R"(import QtQuick.tooling 1.2 -- cgit v1.2.3