Fix To-Do in qstatemachine (use QObject::senderSignalIndex())

Change-Id: Id8a541878918f27a34595ff297d0f41b79275a96
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This commit is contained in:
Kent Hansen 2012-05-28 11:21:04 +02:00 committed by Qt by Nokia
parent 3aac6768f8
commit 87d7545cd0

View File

@ -2299,16 +2299,10 @@ int QSignalEventGenerator::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
void QSignalEventGenerator::execute(void **_a) void QSignalEventGenerator::execute(void **_a)
{ {
// ### in Qt 4.6 we can use QObject::senderSignalIndex() int signalIndex = senderSignalIndex();
QObjectPrivate *d = static_cast<QObjectPrivate *>(d_ptr.data());
int signalIndex = -1;
QObject *sender = this->sender();
if (sender && d->currentSender)
signalIndex = d->currentSender->signal;
Q_ASSERT(signalIndex != -1); Q_ASSERT(signalIndex != -1);
QStateMachine *machine = qobject_cast<QStateMachine*>(parent()); QStateMachine *machine = qobject_cast<QStateMachine*>(parent());
QStateMachinePrivate::get(machine)->handleTransitionSignal(sender, signalIndex, _a); QStateMachinePrivate::get(machine)->handleTransitionSignal(sender(), signalIndex, _a);
} }
QSignalEventGenerator::QSignalEventGenerator(QStateMachine *parent) QSignalEventGenerator::QSignalEventGenerator(QStateMachine *parent)