diff options
Diffstat (limited to 'src/statemachineqml/signaltransition.cpp')
-rw-r--r-- | src/statemachineqml/signaltransition.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/statemachineqml/signaltransition.cpp b/src/statemachineqml/signaltransition.cpp index 593e038..d311725 100644 --- a/src/statemachineqml/signaltransition.cpp +++ b/src/statemachineqml/signaltransition.cpp @@ -89,10 +89,9 @@ const QJSValue& SignalTransition::signal() void SignalTransition::setSignal(const QJSValue &signal) { - if (m_signal.value().strictlyEquals(signal)) { - m_signal.removeBindingUnlessInWrapper(); + m_signal.removeBindingUnlessInWrapper(); + if (m_signal.valueBypassingBindings().strictlyEquals(signal)) return; - } QV4::ExecutionEngine *jsEngine = QQmlEngine::contextForObject(this)->engine()->handle(); QV4::Scope scope(jsEngine); @@ -100,7 +99,7 @@ void SignalTransition::setSignal(const QJSValue &signal) QObject *sender; QMetaMethod signalMethod; - m_signal = signal; + m_signal.setValueBypassingBindings(signal); QV4::ScopedValue value(scope, QJSValuePrivate::asReturnedValue(&signal)); // Did we get the "slot" that can be used to invoke the signal? |