aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2012-02-13 16:14:53 +0000
committerQt by Nokia <qt-info@nokia.com>2012-02-20 08:34:28 +0100
commitde431c5e6cc8d439ed039e24f050ad8020792ab8 (patch)
tree0c86757425ae3fdb1880bfe28d0dbf08637635e0 /src
parentd25ff859591c2450606c56cfc2cebd577165e1b6 (diff)
Use the existing endpoint object to connect alias notify signals
Change-Id: I891ea5e3854a4fc92ba59e98417ad72774bd7adb Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/declarative/qml/qdeclarativevmemetaobject.cpp34
1 files changed, 17 insertions, 17 deletions
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,