diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-05-28 11:14:20 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-01 01:21:43 +0200 |
commit | 1e778ebd06c37f7a81e4247a5998d06fa849eff8 (patch) | |
tree | ca95f81c2c53f94b45a2779871b14264d9dd1d1b /src/corelib | |
parent | 87d7545cd0580795d1fbe3f7112bafcea29cc8b1 (diff) |
Move implementation of QObject::senderSignalIndex() to QObjectPrivate
In preparation of changing the implementation to return an index in
the signals-only range, not all-methods range.
Change-Id: Ib743a4bc9da27ad776ade262b215ebf988e7ab28
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 30 | ||||
-rw-r--r-- | src/corelib/kernel/qobject_p.h | 1 |
2 files changed, 20 insertions, 11 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index adb68f3d98..8ce5310dee 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -2134,17 +2134,7 @@ QObject *QObject::sender() const int QObject::senderSignalIndex() const { Q_D(const QObject); - - QMutexLocker locker(signalSlotLock(this)); - if (!d->currentSender) - return -1; - - for (QObjectPrivate::Connection *c = d->senders; c; c = c->next) { - if (c->sender == d->currentSender->sender) - return d->currentSender->signal; - } - - return -1; + return d->senderSignalIndex(); } /*! @@ -3471,6 +3461,24 @@ void QMetaObject::activate(QObject *sender, int signal_index, void **argv) } /*! \internal + Implementation of QObject::senderSignalIndex() +*/ +int QObjectPrivate::senderSignalIndex() const +{ + Q_Q(const QObject); + QMutexLocker locker(signalSlotLock(q)); + if (!currentSender) + return -1; + + for (QObjectPrivate::Connection *c = senders; c; c = c->next) { + if (c->sender == currentSender->sender) + return currentSender->signal; + } + + return -1; +} + +/*! \internal Returns the signal index used in the internal connectionLists vector. It is different from QMetaObject::indexOfSignal(): indexOfSignal is the same as indexOfMethod diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index aa6b467fd6..84e2ecd779 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -187,6 +187,7 @@ public: return o->d_func(); } + int senderSignalIndex() const; int signalIndex(const char *signalName, const QMetaObject **meta = 0) const; inline bool isSignalConnected(uint signalIdx) const; |