diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-02-23 20:41:53 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-18 11:47:17 +0200 |
commit | 6d3676e877da86d9ec8d4c5094ec19c38a6649e7 (patch) | |
tree | bdcd861841b385f1f28f90404055ed5bf3bd7f02 /src/declarative/qml | |
parent | d2e40f5dbd6d1a550bc70a7adb8511788eeca031 (diff) |
Adapt to Qt5 meta-object changes
QMetaMethod::signature() has been renamed to methodSignature(), and
returns a QByteArray, not const char *.
Thew new function QMetaMethod::isValid() should be used to check
whether a method is valid (it's a lot cheaper than calling
signature()).
Also use the new QMetaObject::checkConnectArgs() overload that
takes QMetaMethods, not strings, as arguments.
Further improvements can be made by using the new functions
QMetaMethod::name(), parameterCount() and parameterTypes(), but
that will be done in separate commits.
Change-Id: I3e4cfbdc7799d8bce747ef37f07d0d097370e409
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Diffstat (limited to 'src/declarative/qml')
-rw-r--r-- | src/declarative/qml/qdeclarativeboundsignal.cpp | 2 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativemetatype.cpp | 4 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativeobjectscriptclass.cpp | 8 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativeproperty.cpp | 6 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativepropertycache.cpp | 6 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativevme.cpp | 9 |
6 files changed, 19 insertions, 16 deletions
diff --git a/src/declarative/qml/qdeclarativeboundsignal.cpp b/src/declarative/qml/qdeclarativeboundsignal.cpp index 7ec18073..0e24c6e2 100644 --- a/src/declarative/qml/qdeclarativeboundsignal.cpp +++ b/src/declarative/qml/qdeclarativeboundsignal.cpp @@ -171,7 +171,7 @@ int QDeclarativeBoundSignal::qt_metacall(QMetaObject::Call c, int id, void **a) return -1; if (QDeclarativeDebugService::isDebuggingEnabled()) { QDeclarativeDebugTrace::startRange(QDeclarativeDebugTrace::HandlingSignal); - QDeclarativeDebugTrace::rangeData(QDeclarativeDebugTrace::HandlingSignal, QLatin1String(m_signal.signature()) % QLatin1String(": ") % m_expression->expression()); + QDeclarativeDebugTrace::rangeData(QDeclarativeDebugTrace::HandlingSignal, QString::fromLatin1(m_signal.methodSignature()) % QLatin1String(": ") % m_expression->expression()); QDeclarativeDebugTrace::rangeLocation(QDeclarativeDebugTrace::HandlingSignal, m_expression->sourceFile(), m_expression->lineNumber()); } m_isEvaluating = true; diff --git a/src/declarative/qml/qdeclarativemetatype.cpp b/src/declarative/qml/qdeclarativemetatype.cpp index bf06333c..8c0e69b6 100644 --- a/src/declarative/qml/qdeclarativemetatype.cpp +++ b/src/declarative/qml/qdeclarativemetatype.cpp @@ -310,7 +310,7 @@ static void clone(QMetaObjectBuilder &builder, const QMetaObject *mo, QMetaMethod method = mo->method(ii); // More complex - need to search name - QByteArray name = method.signature(); + QByteArray name = method.methodSignature(); int parenIdx = name.indexOf('('); if (parenIdx != -1) name = name.left(parenIdx); @@ -322,7 +322,7 @@ static void clone(QMetaObjectBuilder &builder, const QMetaObject *mo, ++ii) { QMetaMethod other = ignoreEnd->method(ii); - QByteArray othername = other.signature(); + QByteArray othername = other.methodSignature(); int parenIdx = othername.indexOf('('); if (parenIdx != -1) othername = othername.left(parenIdx); diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp index c3140f10..5fbcd368 100644 --- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp +++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp @@ -605,7 +605,7 @@ QScriptValue QDeclarativeObjectMethodScriptClass::connect(QScriptContext *contex return engine->undefinedValue(); QByteArray signal("2"); - signal.append(data->object->metaObject()->method(data->data.coreIndex).signature()); + signal.append(data->object->metaObject()->method(data->data.coreIndex).methodSignature()); if (context->argumentCount() == 1) { qScriptConnect(data->object, signal.constData(), QScriptValue(), context->argument(0)); @@ -630,7 +630,7 @@ QScriptValue QDeclarativeObjectMethodScriptClass::disconnect(QScriptContext *con return engine->undefinedValue(); QByteArray signal("2"); - signal.append(data->object->metaObject()->method(data->data.coreIndex).signature()); + signal.append(data->object->metaObject()->method(data->data.coreIndex).methodSignature()); if (context->argumentCount() == 1) { qScriptDisconnect(data->object, signal.constData(), QScriptValue(), context->argument(0)); @@ -1067,7 +1067,7 @@ QDeclarativeObjectMethodScriptClass::callOverloaded(MethodData *method, QScriptC QString error = QLatin1String("Unable to determine callable overload. Candidates are:"); QDeclarativePropertyCache::Data *candidate = &method->data; while (candidate) { - error += QLatin1String("\n ") + QString::fromUtf8(method->object->metaObject()->method(candidate->coreIndex).signature()); + error += QLatin1String("\n ") + QString::fromUtf8(method->object->metaObject()->method(candidate->coreIndex).methodSignature()); candidate = relatedMethod(method->object, candidate, dummy); } return Value(ctxt, ctxt->throwError(error)); @@ -1193,7 +1193,7 @@ static inline int QMetaObject_methods(const QMetaObject *metaObject) static QByteArray QMetaMethod_name(const QMetaMethod &m) { - QByteArray sig = m.signature(); + QByteArray sig = m.methodSignature(); int paren = sig.indexOf('('); if (paren == -1) return sig; diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index 158e561d..146dd6fb 100644 --- a/src/declarative/qml/qdeclarativeproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -299,7 +299,7 @@ void QDeclarativePropertyPrivate::initProperty(QObject *obj, const QString &name signalName[0] = signalName.at(0).toLower(); QMetaMethod method = findSignalByName(currentObject->metaObject(), signalName.toLatin1().constData()); - if (method.signature()) { + if (method.isValid()) { object = currentObject; core.load(method); return; @@ -1401,7 +1401,7 @@ bool QDeclarativeProperty::connectNotifySignal(QObject *dest, const char *slot) QMetaProperty prop = d->object->metaObject()->property(d->core.coreIndex); if (prop.hasNotifySignal()) { - QByteArray signal(QByteArray("2") + prop.notifySignal().signature()); + QByteArray signal(QByteArray("2") + prop.notifySignal().methodSignature()); return QObject::connect(d->object, signal.constData(), dest, slot); } else { return false; @@ -1541,7 +1541,7 @@ QMetaMethod QDeclarativePropertyPrivate::findSignalByName(const QMetaObject *mo, int methods = mo->methodCount(); for (int ii = methods - 1; ii >= 2; --ii) { // >= 2 to block the destroyed signal QMetaMethod method = mo->method(ii); - QByteArray methodName = method.signature(); + QByteArray methodName = method.methodSignature(); int idx = methodName.indexOf('('); methodName = methodName.left(idx); diff --git a/src/declarative/qml/qdeclarativepropertycache.cpp b/src/declarative/qml/qdeclarativepropertycache.cpp index ea94ee23..2ffa1ef7 100644 --- a/src/declarative/qml/qdeclarativepropertycache.cpp +++ b/src/declarative/qml/qdeclarativepropertycache.cpp @@ -196,7 +196,7 @@ QDeclarativePropertyCache::Data QDeclarativePropertyCache::create(const QMetaObj QMetaMethod m = metaObject->method(ii); if (m.access() == QMetaMethod::Private) continue; - QString methodName = QString::fromUtf8(m.signature()); + QString methodName = QString::fromUtf8(m.methodSignature()); int parenIdx = methodName.indexOf(QLatin1Char('(')); Q_ASSERT(parenIdx != -1); @@ -258,7 +258,7 @@ void QDeclarativePropertyCache::append(QDeclarativeEngine *engine, const QMetaOb QMetaMethod m = metaObject->method(ii); if (m.access() == QMetaMethod::Private) continue; - QString methodName = QString::fromUtf8(m.signature()); + QString methodName = QString::fromUtf8(m.methodSignature()); int parenIdx = methodName.indexOf(QLatin1Char('(')); Q_ASSERT(parenIdx != -1); @@ -392,7 +392,7 @@ QString QDeclarativePropertyCache::Data::name(const QMetaObject *metaObject) if (flags & IsFunction) { QMetaMethod m = metaObject->method(coreIndex); - QString name = QString::fromUtf8(m.signature()); + QString name = QString::fromUtf8(m.methodSignature()); int parenIdx = name.indexOf(QLatin1Char('(')); if (parenIdx != -1) name = name.left(parenIdx); diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp index ddfa0138..6c3867f7 100644 --- a/src/declarative/qml/qdeclarativevme.cpp +++ b/src/declarative/qml/qdeclarativevme.cpp @@ -690,11 +690,14 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEObjectStack &stack, if (prop.type() & QDeclarativeProperty::SignalProperty) { QMetaMethod method = QDeclarativeMetaType::defaultMethod(assign); - if (method.signature() == 0) + if (!method.isValid()) VME_EXCEPTION(QCoreApplication::translate("QDeclarativeVME","Cannot assign object type %1 with no default method").arg(QString::fromLatin1(assign->metaObject()->className()))); - if (!QMetaObject::checkConnectArgs(prop.method().signature(), method.signature())) - VME_EXCEPTION(QCoreApplication::translate("QDeclarativeVME","Cannot connect mismatched signal/slot %1 %vs. %2").arg(QString::fromLatin1(method.signature())).arg(QString::fromLatin1(prop.method().signature()))); + if (!QMetaObject::checkConnectArgs(prop.method(), method)) { + VME_EXCEPTION(QCoreApplication::translate("QDeclarativeVME","Cannot connect mismatched signal/slot %1 %vs. %2") + .arg(QString::fromLatin1(method.methodSignature())) + .arg(QString::fromLatin1(prop.method().methodSignature()))); + } QDeclarativePropertyPrivate::connect(target, prop.index(), assign, method.methodIndex()); |