Add a receivers callback to QAbstractDeclarativeData.

Change-Id: I767fabd66c7de535db26e779855d21ec5b94e947
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
This commit is contained in:
Michael Brasser 2012-04-19 12:03:18 +10:00 committed by Qt by Nokia
parent a48d9b52c3
commit 56d78e5086
2 changed files with 7 additions and 0 deletions

View File

@ -184,6 +184,7 @@ void (*QAbstractDeclarativeData::destroyed)(QAbstractDeclarativeData *, QObject
void (*QAbstractDeclarativeData::parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *) = 0; void (*QAbstractDeclarativeData::parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *) = 0;
void (*QAbstractDeclarativeData::objectNameChanged)(QAbstractDeclarativeData *, QObject *) = 0; void (*QAbstractDeclarativeData::objectNameChanged)(QAbstractDeclarativeData *, QObject *) = 0;
void (*QAbstractDeclarativeData::signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **) = 0; void (*QAbstractDeclarativeData::signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **) = 0;
int (*QAbstractDeclarativeData::receivers)(QAbstractDeclarativeData *, const QObject *, int) = 0;
QObjectData::~QObjectData() {} QObjectData::~QObjectData() {}
@ -2184,6 +2185,11 @@ int QObject::receivers(const char *signal) const
return false; return false;
} }
if (d->declarativeData && QAbstractDeclarativeData::receivers) {
receivers += QAbstractDeclarativeData::receivers(d->declarativeData, this,
metaObject()->indexOfMethod(signal));
}
Q_D(const QObject); Q_D(const QObject);
QMutexLocker locker(signalSlotLock(this)); QMutexLocker locker(signalSlotLock(this));
if (d->connectionLists) { if (d->connectionLists) {

View File

@ -91,6 +91,7 @@ public:
static void (*parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *); static void (*parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *);
static void (*objectNameChanged)(QAbstractDeclarativeData *, QObject *); static void (*objectNameChanged)(QAbstractDeclarativeData *, QObject *);
static void (*signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **); static void (*signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **);
static int (*receivers)(QAbstractDeclarativeData *, const QObject *, int);
}; };
class Q_CORE_EXPORT QObjectPrivate : public QObjectData class Q_CORE_EXPORT QObjectPrivate : public QObjectData