From: Kent Hansen Date: Tue, 20 Mar 2012 19:07:50 +0000 (+0100) Subject: Adapt to QMetaMethod::typeName() behavioral change for "void" X-Git-Tag: 071012131707~609^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c3babc03c99c6ca5fa210486e133eb456a405bab;p=profile%2Fivi%2Fqtdeclarative.git 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 --- diff --git a/src/qml/qml/qqmlpropertycache.cpp b/src/qml/qml/qqmlpropertycache.cpp index af6cd92..afab665 100644 --- a/src/qml/qml/qqmlpropertycache.cpp +++ b/src/qml/qml/qqmlpropertycache.cpp @@ -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; } diff --git a/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp b/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp index ca48f02..8e35c24 100644 --- a/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp +++ b/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp @@ -251,7 +251,7 @@ void tst_QQmlMetaObject::property() QCOMPARE(signal.parameterTypes(), QList()); QCOMPARE(signal.parameterNames(), QList()); 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() << QList() << QList(); QTest::newRow("testSignal(string foo)") << "signal.2.qml" << "testSignal(QString)" << QMetaMethod::Signal - << int(QMetaType::Void) << "" + << int(QMetaType::Void) << "void" << (QList() << QMetaType::QString) << (QList() << "QString") << (QList() << "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() << QMetaType::Int << QMetaType::Bool << QMetaType::Double) << (QList() << "int" << "bool" << "double") << (QList() << "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() << QMetaType::QVariant << QMetaType::QVariant) << (QList() << "QVariant" << "QVariant") << (QList() << "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() << QMetaType::QColor << QMetaType::QDateTime << QMetaType::QUrl) << (QList() << "QColor" << "QDateTime" << "QUrl") << (QList() << "foo" << "bar" << "baz"); QTest::newRow("testSignal(double foo)") << "signal.6.qml" << "testSignal(double)" << QMetaMethod::Signal - << int(QMetaType::Void) << "" + << int(QMetaType::Void) << "void" << (QList() << QMetaType::Double) << (QList() << "double") << (QList() << "foo");