From f83954c6310cba1529017601bf88a82e2a16ec94 Mon Sep 17 00:00:00 2001 From: Thomas McGuire Date: Wed, 18 Jul 2012 15:17:20 +0200 Subject: Provide access to (dis)connectNotify() from other objects. This is the first step to fix (dis)connectNotify() not getting called for QML signal handlers and bindings. Change-Id: I5cfc126a5562a20031d3af8415c60d101603dd8d Reviewed-by: Thiago Macieira Reviewed-by: Sean Harmer --- src/corelib/kernel/qobject_p.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/corelib/kernel/qobject_p.h') diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index 446e920875..02580caf41 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -193,6 +193,11 @@ public: int signalIndex(const char *signalName, const QMetaObject **meta = 0) const; inline bool isSignalConnected(uint signalIdx) const; + // To allow abitrary objects to call connectNotify()/disconnectNotify() without making + // the API public in QObject. This is used by QQmlNotifierEndpoint. + inline void connectNotify(const QMetaMethod &signal); + inline void disconnectNotify(const QMetaMethod &signal); + public: ExtraData *extraData; // extra data set by the user QThreadData *threadData; // id of the thread that owns the object @@ -252,6 +257,16 @@ inline void QObjectPrivate::resetCurrentSender(QObject *receiver, previousSender->ref = currentSender->ref; } +inline void QObjectPrivate::connectNotify(const QMetaMethod &signal) +{ + q_ptr->connectNotify(signal); +} + +inline void QObjectPrivate::disconnectNotify(const QMetaMethod &signal) +{ + q_ptr->disconnectNotify(signal); +} + Q_DECLARE_TYPEINFO(QObjectPrivate::Connection, Q_MOVABLE_TYPE); Q_DECLARE_TYPEINFO(QObjectPrivate::Sender, Q_MOVABLE_TYPE); -- cgit v1.2.3