From 66399c6584a86180c1955e5d34617fa46b07f36e Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Mon, 2 Apr 2012 10:02:28 +1000 Subject: Also check notifier endpoints when checking whether a signal is connected. This is required for the QQmlBoundSignal optimizations. Change-Id: I63540b96cd7d4523ec49973a2540054c83d82b12 Reviewed-by: Chris Adams --- src/qml/qml/qqmlglobal_p.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/qml/qml/qqmlglobal_p.h') diff --git a/src/qml/qml/qqmlglobal_p.h b/src/qml/qml/qqmlglobal_p.h index 2356b2d122..04711ae3fc 100644 --- a/src/qml/qml/qqmlglobal_p.h +++ b/src/qml/qml/qqmlglobal_p.h @@ -89,6 +89,21 @@ QT_BEGIN_NAMESPACE QMetaObject::connect(sender, signalIdx, receiver, methodIdx, Qt::DirectConnection); \ } +bool Q_QML_EXPORT QQml_isSignalConnected(QObject*, int, int); + +#define IS_SIGNAL_CONNECTED(Sender, Signal) \ +do { \ + QObject *sender = (Sender); \ + const char *signal = (Signal); \ + static int signalIdx = -1; \ + static int methodIdx = -1; \ + if (signalIdx < 0) { \ + signalIdx = QObjectPrivate::get(sender)->signalIndex(signal); \ + methodIdx = sender->metaObject()->indexOfSignal(signal); \ + } \ + return QQml_isSignalConnected(sender, signalIdx, methodIdx); \ +} while (0) + struct QQmlGraphics_DerivedObject : public QObject { void setParent_noEvent(QObject *parent) { -- cgit v1.2.3