Make QSignalSpy copy QVariant parameters directly
authorKent Hansen <kent.hansen@nokia.com>
Mon, 18 Jun 2012 07:46:35 +0000 (09:46 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 7 Aug 2012 09:15:55 +0000 (11:15 +0200)
commit9a0b7348b3548c5062db28129b11a8f1abbd7540
treeea40bf31f4f038144a930be9c426cf9cb5656739
parent39c2fdd9070f81705f1de927694b8589f69da149
Make QSignalSpy copy QVariant parameters directly

Previously, a QVariant parameter would be wrapped inside a new
QVariant, and you would have to cast the QSignalSpy's QVariant to
a QVariant to get the actual value. This behavior was unintuitive
and undocumented.

Check if the parameter type is QVariant, and copy it directly if it
is. This makes the QSignalSpy's QVariant directly usable (no need to
"unwrap" the value in user code).

Existing tests that use QSignalSpy together with QVariant parameters
(such as tst_QPropertyAnimation::valueChanged()) and do cast the
QVariant parameter to a QVariant, continue to work after this change;
this is because qvariant_cast<QVariant>() returns its input value
(unchanged) when the type is not QMetaType::QVariant.

Task-number: QTBUG-21645
Change-Id: Ibfb171edd60c0d3f7ca1d5419e5c5f3d0380d5b3
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
dist/changes-5.0.0
src/testlib/qsignalspy.h
tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp