From 46f407126ef3e94d59254012cdc34d6a4ad2faf2 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 5 Dec 2019 16:14:14 +0100 Subject: MetaObject: store the QMetaType of the properties Change-Id: I563e7232b70e94de4184f2c23a581319313dcf5c Reviewed-by: Thiago Macieira --- tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp | 4 +++- .../auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp | 1 + tests/auto/corelib/kernel/qobject/tst_qobject.cpp | 13 ++++++++----- tests/auto/tools/moc/tst_moc.cpp | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) (limited to 'tests') diff --git a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp index bcd4a66782..9db2bb241a 100644 --- a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp +++ b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp @@ -1446,13 +1446,15 @@ void tst_QMetaObject::customPropertyType() QMetaProperty prop = metaObject()->property(metaObject()->indexOfProperty("value3")); QCOMPARE(prop.type(), QVariant::UserType); - QCOMPARE(prop.userType(), 0); + QCOMPARE(prop.userType(), QMetaType::fromType().id()); + QCOMPARE(prop.metaType(), QMetaType::fromType()); qRegisterMetaType("MyStruct"); QCOMPARE(prop.userType(), QMetaType::type("MyStruct")); prop = metaObject()->property(metaObject()->indexOfProperty("value4")); QCOMPARE(prop.type(), QVariant::List); + QCOMPARE(prop.metaType(), QMetaType::fromType>()); prop = metaObject()->property(metaObject()->indexOfProperty("value5")); QCOMPARE(prop.type(), QVariant::List); diff --git a/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp b/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp index cc67fc7884..43ed535019 100644 --- a/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp +++ b/tests/auto/corelib/kernel/qmetaproperty/tst_qmetaproperty.cpp @@ -138,6 +138,7 @@ void tst_QMetaProperty::gadget() const QMetaObject *mo = &MyGadget::staticMetaObject; QMetaProperty valueProp = mo->property(mo->indexOfProperty("value")); QVERIFY(valueProp.isValid()); + QCOMPARE(valueProp.metaType(), QMetaType::fromType()); { MyGadget g; QString hello = QLatin1String("hello"); diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index 5ce70f7a0e..b1d3ea19d6 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -1914,7 +1914,7 @@ void tst_QObject::property() property = mo->property(mo->indexOfProperty("alpha")); QVERIFY(property.isEnumType()); QCOMPARE(property.typeName(), "Alpha"); - QCOMPARE(property.type(), QVariant::Int); + QCOMPARE(property.userType(), QMetaType::fromType().id()); QVariant var = object.property("alpha"); QVERIFY(!var.isNull()); @@ -1925,7 +1925,8 @@ void tst_QObject::property() QCOMPARE(object.property("alpha").toInt(), int(PropertyObject::Alpha2)); QVERIFY(object.setProperty("alpha", "Alpha1")); QCOMPARE(object.property("alpha").toInt(), int(PropertyObject::Alpha1)); - QVERIFY(!object.setProperty("alpha", QVariant())); + QVERIFY(object.setProperty("alpha", QVariant())); + QCOMPARE(object.property("alpha").toInt(), 0); QVERIFY(mo->indexOfProperty("number") != -1); QCOMPARE(object.property("number").toInt(), 0); @@ -1995,7 +1996,7 @@ void tst_QObject::property() property = mo->property(mo->indexOfProperty("priority")); QVERIFY(property.isEnumType()); QCOMPARE(property.typeName(), "Priority"); - QCOMPARE(property.type(), QVariant::Int); + QCOMPARE(property.userType(), QMetaType::fromType().id()); var = object.property("priority"); QVERIFY(!var.isNull()); @@ -2006,7 +2007,8 @@ void tst_QObject::property() QCOMPARE(object.property("priority").toInt(), int(PropertyObject::VeryHigh)); QVERIFY(object.setProperty("priority", "High")); QCOMPARE(object.property("priority").toInt(), int(PropertyObject::High)); - QVERIFY(!object.setProperty("priority", QVariant())); + QVERIFY(object.setProperty("priority", QVariant())); + QCOMPARE(object.property("priority").toInt(), 0); // now it's registered, so it works as expected int priorityMetaTypeId = qRegisterMetaType("PropertyObject::Priority"); @@ -2028,7 +2030,8 @@ void tst_QObject::property() QCOMPARE(qvariant_cast(object.property("priority")), PropertyObject::VeryHigh); QVERIFY(object.setProperty("priority", "High")); QCOMPARE(qvariant_cast(object.property("priority")), PropertyObject::High); - QVERIFY(!object.setProperty("priority", QVariant())); + QVERIFY(object.setProperty("priority", QVariant())); + QCOMPARE(object.property("priority").toInt(), 0); var = object.property("priority"); QCOMPARE(qvariant_cast(var), PropertyObject::High); diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index 08c604e37e..31fe68a64e 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -3945,7 +3945,7 @@ void tst_Moc::testQNamespace() EnumFromNamespaceClass obj; const QVariant prop = obj.property("prop"); - QCOMPARE(prop.type(), QMetaType::Int); + QCOMPARE(prop.userType(), QMetaType::fromType().id()); QCOMPARE(prop.toInt(), int(FooNamespace::Enum1::Key2)); } -- cgit v1.2.3