diff options
author | Marco Bubke <marco.bubke@qt.io> | 2022-04-20 17:09:50 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2022-04-21 09:31:54 +0000 |
commit | 056db316f926607db0922d03746f91317410ad66 (patch) | |
tree | b60e77cd1f7cc3bee53e127c26b38ea764c79a9e | |
parent | 258871aa37dc9150e5776f18f2614a0156df8f6b (diff) |
QmlDesigner: Ignore properties without type
Task-number: QDS-6775
Change-Id: I6c280200348058de4d2ee64e5eee3856fa77da50
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp | 3 | ||||
-rw-r--r-- | tests/unit/unittest/qmltypesparser-test.cpp | 20 |
2 files changed, 23 insertions, 0 deletions
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 |