diff options
author | Albert Astals Cid <albert.astals@canonical.com> | 2016-11-22 12:26:54 +0100 |
---|---|---|
committer | Albert Astals Cid <albert.astals@canonical.com> | 2016-11-30 15:01:01 +0000 |
commit | b19ebe1d23e1f2fd334cef4ec2731ab5cc69dbd7 (patch) | |
tree | c59fe68a63512fc3dea9aa78b6da9f5d5f0bbeaf /src/imports | |
parent | 63c34dc6c1c6f24f8e83f295adc70fdcc392f8c5 (diff) |
Fix SignalSpy with QQmlPropertyMap signals
2e7d4ecdc59942b484159ca827f5d5dbc8787a1b caused the regression.
To fix the regression I try accessing the signal name first
and if it is not a function try accessing the handler name.
Comes with a unit test to test both cases.
Change-Id: I3897f344df9c6219636c70259eed503d9b76f09e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/testlib/SignalSpy.qml | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/imports/testlib/SignalSpy.qml b/src/imports/testlib/SignalSpy.qml index 200fc725f7..8a8e844a21 100644 --- a/src/imports/testlib/SignalSpy.qml +++ b/src/imports/testlib/SignalSpy.qml @@ -230,8 +230,14 @@ Item { qtest_prevSignalName = "" } if (target != null && signalName != "") { - var handlerName = qtest_signalHandlerName(signalName) - var func = target[handlerName] + // Look for the signal name in the object + var func = target[signalName] + if (typeof func !== "function") { + // If it is not a function, try looking for signal handler + // i.e. (onSignal) this is needed for cases where there is a property + // and a signal with the same name, e.g. Mousearea.pressed + func = target[qtest_signalHandlerName(signalName)] + } if (func === undefined) { spy.qtest_valid = false console.log("Signal '" + signalName + "' not found") |