diff options
author | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2015-05-04 13:15:37 +0200 |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2016-03-18 21:24:50 +0000 |
commit | 2e7d4ecdc59942b484159ca827f5d5dbc8787a1b (patch) | |
tree | a1d74d25e15dd9fddb7a98f3159117edda6c1563 /src/imports | |
parent | 201dec50b6f08b740aab9947725f8f5ec36349bb (diff) |
SignalSpy: Support "pressed" signal use-case
In some types, e.g. MouseArea, the "pressed" symbol refers
both to a signal and to a property. When trying to connect
to the signal, we get an error since the engine will resolve
to the property instead. We circumvent that by connecting to
the signal handler instead, i.e. "onPressed" for the "pressed"
signal.
Change-Id: I4212b752be4da4ec2209a3447ac41326f1e0bb5d
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/testlib/SignalSpy.qml | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/imports/testlib/SignalSpy.qml b/src/imports/testlib/SignalSpy.qml index 7288c57ea0..882e3d3578 100644 --- a/src/imports/testlib/SignalSpy.qml +++ b/src/imports/testlib/SignalSpy.qml @@ -222,14 +222,16 @@ Item { /*! \internal */ function qtest_update() { if (qtest_prevTarget != null) { - var prevFunc = qtest_prevTarget[qtest_prevSignalName] + var prevHandlerName = qtest_signalHandlerName(qtest_prevSignalName) + var prevFunc = qtest_prevTarget[prevHandlerName] if (prevFunc) prevFunc.disconnect(spy.qtest_activated) qtest_prevTarget = null qtest_prevSignalName = "" } if (target != null && signalName != "") { - var func = target[signalName] + var handlerName = qtest_signalHandlerName(signalName) + var func = target[handlerName] if (func === undefined) { spy.qtest_valid = false console.log("Signal '" + signalName + "' not found") @@ -250,4 +252,9 @@ Item { ++qtest_count spy.qtest_signalArguments[spy.qtest_signalArguments.length] = arguments } + + /*! \internal */ + function qtest_signalHandlerName(sn) { + return "on" + sn.substr(0, 1).toUpperCase() + sn.substr(1) + } } |