aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2022-04-20 17:09:50 +0200
committerMarco Bubke <marco.bubke@qt.io>2022-04-21 09:31:54 +0000
commit056db316f926607db0922d03746f91317410ad66 (patch)
treeb60e77cd1f7cc3bee53e127c26b38ea764c79a9e
parent258871aa37dc9150e5776f18f2614a0156df8f6b (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.cpp3
-rw-r--r--tests/unit/unittest/qmltypesparser-test.cpp20
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