Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Unwrap QJSValue from QVariant in QV8Engine::fromVariant
When QML tries to unwrap real value from a QVariant and the value is a QJSValue instance, then no conversion is needed, QJSValue already contains a v8 handle. This patch, for example, solves a problem of emitting QJSValue instance in a signal that has QVariant as an argument. The QJSValue can be unwrapped and used as a normal JS value in a connected slot. This feature may be used also in a plugin model that stores QJSValues internally. Then the model in data() function can return a QJSValue which would be understood by QML. Change-Id: I1d5ede40ce2637123b09839fd848b27ad3af3dda Reviewed-on: http://codereview.qt-project.org/4451 Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
- Loading branch information
Showing
4 changed files
with
93 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
tests/auto/declarative/qdeclarativeecmascript/data/signalWithJSValueInVariant.qml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import Qt.test 1.0 | ||
|
||
MyQmlObject { | ||
property string expression | ||
property string compare | ||
property bool pass: false | ||
onSignalWithVariant: | ||
{ | ||
var expected = eval(expression); | ||
pass = eval(compare)(arg, expected); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters