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>
This commit is contained in:
Kent Hansen 2012-05-28 11:14:20 +02:00 committed by Qt by Nokia
parent 87d7545cd0
commit 1e778ebd06
2 changed files with 20 additions and 11 deletions

View File

@ -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();
}
/*!
@ -3470,6 +3460,24 @@ void QMetaObject::activate(QObject *sender, int signal_index, void **argv)
activate(sender, mo, signal_index - mo->methodOffset(), 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.

View File

@ -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;