summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobject_p.h
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-06-15 10:47:49 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-26 22:38:23 +0200
commitf4b3fa305d4775b1d731a66f4971d07bd8a6b6c9 (patch)
treee50eefbec37d4f8254cfdc5300f579390ac4df97 /src/corelib/kernel/qobject_p.h
parent744a31fe2a89951bb1b9b832bde1eb2f14075f50 (diff)
Add QAbstractDeclarativeData::isSignalConnected hook
Similar to QAbstractDeclarative::receivers. This hook will allow QObject::isSignalConnected(QMetaMethod) to return true when there are QML-managed connections. It's important that the hook is called from QObjectPrivate::isSignalConnected(uint), since QML calls that function. Change-Id: I9c5e42f2b3e7f985af02905985a3a47101cdee05 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'src/corelib/kernel/qobject_p.h')
-rw-r--r--src/corelib/kernel/qobject_p.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index 02c9ac61a7..0d491a2b87 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -92,6 +92,7 @@ public:
static void (*parentChanged)(QAbstractDeclarativeData *, QObject *, QObject *);
static void (*signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **);
static int (*receivers)(QAbstractDeclarativeData *, const QObject *, int);
+ static bool (*isSignalConnected)(QAbstractDeclarativeData *, const QObject *, int);
};
class Q_CORE_EXPORT QObjectPrivate : public QObjectData
@@ -224,6 +225,8 @@ inline bool QObjectPrivate::isSignalConnected(uint signal_index) const
{
return signal_index >= sizeof(connectedSignals) * 8
|| (connectedSignals[signal_index >> 5] & (1 << (signal_index & 0x1f))
+ || (declarativeData && QAbstractDeclarativeData::isSignalConnected
+ && QAbstractDeclarativeData::isSignalConnected(declarativeData, q_func(), signal_index))
|| qt_signal_spy_callback_set.signal_begin_callback
|| qt_signal_spy_callback_set.signal_end_callback);
}