diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-01-06 13:43:40 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-25 08:46:40 +0100 |
commit | 00c8984b4e48b2a7eadfee6c3cd0cbb19f586118 (patch) | |
tree | a4f3f1c958d43b737ef669578c35789134f34341 /tests/auto | |
parent | 79ebb1621e6cdb68a4ad107c8ac80eadb9c60366 (diff) |
moc: Use QMetaType::QVariant as the type for QVariant
QMetaType::QVariant has existed as a proper type for almost two
years, but the qvariant_nameToType function was written in 2006.
Using QMetaType::QVariant means QVariant can be treated just like
any other type. We can get rid of those hacky checks for LastType,
and the remaining checks become more readable.
The fact that QMetaProperty::{type,userType}() returned LastType
(0xffffffff) for QVariants was never documented (LastType itself is
internal). But there are other Qt modules that assume so. I'll fix
the ones I know about (qtdeclarative, qtscript, activeqt).
Change-Id: I799b9079bb8bbb1fe76c132525440b30415cbac5
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp | 15 | ||||
-rw-r--r-- | tests/auto/corelib/kernel/qobject/tst_qobject.cpp | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp index d0f68db4a2..7ba96b236f 100644 --- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp +++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp @@ -57,6 +57,7 @@ private slots: void signal(); void constructor(); void property(); + void variantProperty(); void notifySignal(); void enumerator(); void classInfo(); @@ -727,6 +728,20 @@ void tst_QMetaObjectBuilder::property() QCOMPARE(builder.method(0).signature(), QByteArray("propChanged(QString)")); } +void tst_QMetaObjectBuilder::variantProperty() +{ + QMetaObjectBuilder builder; + builder.addProperty("variant", "const QVariant &"); + QMetaObject *meta = builder.toMetaObject(); + + QMetaProperty prop = meta->property(meta->propertyOffset()); + QCOMPARE(QMetaType::Type(prop.type()), QMetaType::QVariant); + QCOMPARE(QMetaType::Type(prop.userType()), QMetaType::QVariant); + QCOMPARE(QByteArray(prop.typeName()), QByteArray("QVariant")); + + qFree(meta); +} + void tst_QMetaObjectBuilder::notifySignal() { QMetaObjectBuilder builder; diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index dec34a8fa0..c1471e4f21 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -1671,7 +1671,7 @@ void tst_QObject::property() const int idx = mo->indexOfProperty("variant"); QVERIFY(idx != -1); - QVERIFY(mo->property(idx).type() == QVariant::LastType); + QCOMPARE(QMetaType::Type(mo->property(idx).type()), QMetaType::QVariant); QCOMPARE(object.property("variant"), QVariant()); QVariant variant1(42); QVariant variant2("string"); |