summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2020-11-18 10:41:39 +0100
committerFabian Kosmale <fabian.kosmale@qt.io>2020-11-30 17:16:20 +0100
commit465701bb98f3c3454d15c22b8e38ab4ad8821dfc (patch)
tree526f5ee1cd63be0aecc7c454d8aeccb577a351e8 /tests/auto/corelib
parent130b2090147e0d28e35fd736fbefcd588c0014f6 (diff)
QMetaPropertyBuilder: carry metatype
Properties of non-dynamic classes always have the metatype stored, so we can make use of it. Moreover, when the builder is converted into a metaobject, we need to resolve the metatype anyway. As a driveby, add a dedicated metatype test to tst_qmetaobjectbuilder. Change-Id: I7eea0cd8fc2da5d92c7fc803f05cd81e3a9d4cf4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
index 2660c1a53c..cec7c7198f 100644
--- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
+++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
@@ -64,6 +64,8 @@ private slots:
void classNameFirstInStringData();
+ void propertyMetaType();
+
private:
static bool checkForSideEffects
(const QMetaObjectBuilder& builder,
@@ -1688,6 +1690,24 @@ void tst_QMetaObjectBuilder::classNameFirstInStringData()
free(mo);
}
+struct MyFoo {};
+
+void tst_QMetaObjectBuilder::propertyMetaType()
+{
+ QMetaType meta = QMetaType::fromType<MyFoo>();
+ auto metaId = meta.id();
+ QMetaObjectBuilder builder;
+ builder.setClassName("Test");
+ builder.addProperty("test", "MyFoo");
+ auto mo = builder.toMetaObject();
+
+ QMetaProperty metaProp = mo->property(mo->indexOfProperty("test"));
+ QCOMPARE(metaProp.typeName(), meta.name());
+ QCOMPARE(metaProp.typeId(), metaId);
+ QCOMPARE(metaProp.metaType(), meta);
+ free(mo);
+}
+
QTEST_MAIN(tst_QMetaObjectBuilder)
#include "tst_qmetaobjectbuilder.moc"