summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/kernel/qobject.cpp5
-rw-r--r--src/corelib/kernel/qobject_p.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index dce78393d0..b769beac03 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -147,6 +147,7 @@ private:
void (*QAbstractDeclarativeData::destroyed)(QAbstractDeclarativeData *, QObject *) = 0;
void (*QAbstractDeclarativeData::parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *) = 0;
void (*QAbstractDeclarativeData::objectNameChanged)(QAbstractDeclarativeData *, QObject *) = 0;
+void (*QAbstractDeclarativeData::signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **) = 0;
QObjectData::~QObjectData() {}
@@ -3270,6 +3271,10 @@ void QMetaObject::activate(QObject *sender, const QMetaObject *m, int local_sign
int signal_index = signalOffset + local_signal_index;
+ if (sender->d_func()->declarativeData && QAbstractDeclarativeData::signalEmitted)
+ QAbstractDeclarativeData::signalEmitted(sender->d_func()->declarativeData, sender,
+ methodOffset + local_signal_index, argv);
+
if (!sender->d_func()->isSignalConnected(signal_index))
return; // nothing connected to these signals, and no spy
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index 9151e8eb7b..e7233c5ba9 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -91,6 +91,7 @@ public:
static void (*destroyed)(QAbstractDeclarativeData *, QObject *);
static void (*parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *);
static void (*objectNameChanged)(QAbstractDeclarativeData *, QObject *);
+ static void (*signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **);
};
class Q_CORE_EXPORT QObjectPrivate : public QObjectData