Adapt to QMetaMethod::typeName() behavioral change for "void"

QMetaMethod::typeName() has been changed to return "void",
rather than an empty string, when the return type is void.

Change-Id: Ifc903ba60a06ffaefe27c94fe629698d64904d94
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
This commit is contained in:
Kent Hansen 2012-03-20 20:07:50 +01:00 committed by Qt by Nokia
parent 392b078c78
commit c3babc03c9
2 changed files with 10 additions and 9 deletions

View File

@ -196,10 +196,11 @@ void QQmlPropertyData::lazyLoad(const QMetaMethod &m)
flags |= IsFunction;
if (m.methodType() == QMetaMethod::Signal)
flags |= IsSignal;
propType = QVariant::Invalid;
propType = QMetaType::Void;
const char *returnType = m.typeName();
if (returnType && *returnType) {
Q_ASSERT(returnType != 0);
if ((*returnType != 'v') || (qstrcmp(returnType+1, "oid") != 0)) {
propTypeName = returnType;
flags |= NotFullyResolved;
}

View File

@ -251,7 +251,7 @@ void tst_QQmlMetaObject::property()
QCOMPARE(signal.parameterTypes(), QList<QByteArray>());
QCOMPARE(signal.parameterNames(), QList<QByteArray>());
QCOMPARE(signal.tag(), "");
QCOMPARE(signal.typeName(), "");
QCOMPARE(signal.typeName(), "void");
QCOMPARE(signal.returnType(), int(QMetaType::Void));
QSignalSpy changedSpy(object, SIGNAL(testChanged()));
@ -310,42 +310,42 @@ void tst_QQmlMetaObject::method_data()
QTest::newRow("testSignal") << "signal.1.qml"
<< "testSignal()"
<< QMetaMethod::Signal
<< int(QMetaType::Void) << ""
<< int(QMetaType::Void) << "void"
<< QList<int>()
<< QList<QByteArray>()
<< QList<QByteArray>();
QTest::newRow("testSignal(string foo)") << "signal.2.qml"
<< "testSignal(QString)"
<< QMetaMethod::Signal
<< int(QMetaType::Void) << ""
<< int(QMetaType::Void) << "void"
<< (QList<int>() << QMetaType::QString)
<< (QList<QByteArray>() << "QString")
<< (QList<QByteArray>() << "foo");
QTest::newRow("testSignal(int foo, bool bar, real baz)") << "signal.3.qml"
<< "testSignal(int,bool,double)"
<< QMetaMethod::Signal
<< int(QMetaType::Void) << ""
<< int(QMetaType::Void) << "void"
<< (QList<int>() << QMetaType::Int << QMetaType::Bool << QMetaType::Double)
<< (QList<QByteArray>() << "int" << "bool" << "double")
<< (QList<QByteArray>() << "foo" << "bar" << "baz");
QTest::newRow("testSignal(variant foo, var bar)") << "signal.4.qml"
<< "testSignal(QVariant,QVariant)"
<< QMetaMethod::Signal
<< int(QMetaType::Void) << ""
<< int(QMetaType::Void) << "void"
<< (QList<int>() << QMetaType::QVariant << QMetaType::QVariant)
<< (QList<QByteArray>() << "QVariant" << "QVariant")
<< (QList<QByteArray>() << "foo" << "bar");
QTest::newRow("testSignal(color foo, date bar, url baz)") << "signal.5.qml"
<< "testSignal(QColor,QDateTime,QUrl)"
<< QMetaMethod::Signal
<< int(QMetaType::Void) << ""
<< int(QMetaType::Void) << "void"
<< (QList<int>() << QMetaType::QColor << QMetaType::QDateTime << QMetaType::QUrl)
<< (QList<QByteArray>() << "QColor" << "QDateTime" << "QUrl")
<< (QList<QByteArray>() << "foo" << "bar" << "baz");
QTest::newRow("testSignal(double foo)") << "signal.6.qml"
<< "testSignal(double)"
<< QMetaMethod::Signal
<< int(QMetaType::Void) << ""
<< int(QMetaType::Void) << "void"
<< (QList<int>() << QMetaType::Double)
<< (QList<QByteArray>() << "double")
<< (QList<QByteArray>() << "foo");