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:
parent
87d7545cd0
commit
1e778ebd06
@ -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.
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user