From de431c5e6cc8d439ed039e24f050ad8020792ab8 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Mon, 13 Feb 2012 16:14:53 +0000 Subject: Use the existing endpoint object to connect alias notify signals Change-Id: I891ea5e3854a4fc92ba59e98417ad72774bd7adb Reviewed-by: Roberto Raggi --- src/declarative/qml/qdeclarativevmemetaobject.cpp | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'src/declarative') diff --git a/src/declarative/qml/qdeclarativevmemetaobject.cpp b/src/declarative/qml/qdeclarativevmemetaobject.cpp index 36a8838c75..d9ad56acc2 100644 --- a/src/declarative/qml/qdeclarativevmemetaobject.cpp +++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp @@ -406,27 +406,27 @@ void QDeclarativeVMEMetaObjectEndpoint::vmecallback(QDeclarativeNotifierEndpoint void QDeclarativeVMEMetaObjectEndpoint::tryConnect() { - if (metaObject.flag()) - return; - int aliasId = this - metaObject->aliasEndpoints; - QDeclarativeVMEMetaData::AliasData *d = metaObject->metaData->aliasData() + aliasId; - if (!d->isObjectAlias()) { - QDeclarativeContextData *ctxt = metaObject->ctxt; - QObject *target = ctxt->idValues[d->contextIdx].data(); - if (!target) - return; - - QMetaProperty prop = target->metaObject()->property(d->propertyIndex()); - if (prop.hasNotifySignal()) { - int sigIdx = metaObject->methodOffset + aliasId + metaObject->metaData->propertyCount; - QDeclarativePropertyPrivate::connect(target, prop.notifySignalIndex(), - metaObject->object, sigIdx); + if (metaObject.flag()) { + // This is actually notify + int sigIdx = metaObject->methodOffset + aliasId + metaObject->metaData->propertyCount; + QMetaObject::activate(metaObject->object, sigIdx, 0); + } else { + QDeclarativeVMEMetaData::AliasData *d = metaObject->metaData->aliasData() + aliasId; + if (!d->isObjectAlias()) { + QDeclarativeContextData *ctxt = metaObject->ctxt; + QObject *target = ctxt->idValues[d->contextIdx].data(); + if (!target) + return; + + QMetaProperty prop = target->metaObject()->property(d->propertyIndex()); + if (prop.hasNotifySignal()) + connect(target, prop.notifySignalIndex()); } - } - metaObject.setFlag(); + metaObject.setFlag(); + } } QDeclarativeVMEMetaObject::QDeclarativeVMEMetaObject(QObject *obj, -- cgit v1.2.3