From 56d78e5086d7cbebcf023eef1e0717fee7b2aea5 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 19 Apr 2012 12:03:18 +1000 Subject: [PATCH] Add a receivers callback to QAbstractDeclarativeData. Change-Id: I767fabd66c7de535db26e779855d21ec5b94e947 Reviewed-by: Kent Hansen --- src/corelib/kernel/qobject.cpp | 6 ++++++ src/corelib/kernel/qobject_p.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 5ccbad46678..6a3e48b1271 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -184,6 +184,7 @@ void (*QAbstractDeclarativeData::destroyed)(QAbstractDeclarativeData *, QObject void (*QAbstractDeclarativeData::parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *) = 0; void (*QAbstractDeclarativeData::objectNameChanged)(QAbstractDeclarativeData *, QObject *) = 0; void (*QAbstractDeclarativeData::signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **) = 0; +int (*QAbstractDeclarativeData::receivers)(QAbstractDeclarativeData *, const QObject *, int) = 0; QObjectData::~QObjectData() {} @@ -2184,6 +2185,11 @@ int QObject::receivers(const char *signal) const return false; } + if (d->declarativeData && QAbstractDeclarativeData::receivers) { + receivers += QAbstractDeclarativeData::receivers(d->declarativeData, this, + metaObject()->indexOfMethod(signal)); + } + Q_D(const QObject); QMutexLocker locker(signalSlotLock(this)); if (d->connectionLists) { diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index c8edadce9db..f2741979af6 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -91,6 +91,7 @@ public: static void (*parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *); static void (*objectNameChanged)(QAbstractDeclarativeData *, QObject *); static void (*signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **); + static int (*receivers)(QAbstractDeclarativeData *, const QObject *, int); }; class Q_CORE_EXPORT QObjectPrivate : public QObjectData