1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
import Qt.test 1.0
import QtQuick 2.0
import "functionAssignment.js" as Script
MyQmlObject {
property variant a
property int aNumber: 10
property bool assignToProperty: false
property bool assignToPropertyFromJsFile: false
property bool assignWithThis: false
property bool assignWithThisFromJsFile: false
property bool assignToValueType: false
property bool assignFuncWithoutReturn: false
property bool assignWrongType: false
property bool assignWrongTypeToValueType: false
function myFunction() {
return aNumber * 10;
}
onAssignToPropertyChanged: {
a = Qt.binding(myFunction);
}
property QtObject obj: QtObject {
property int aNumber: 4212
function myFunction() {
return this.aNumber * 10; // should use the aNumber from root, not this object
}
}
onAssignWithThisChanged: {
a = Qt.binding(obj.myFunction);
}
onAssignToPropertyFromJsFileChanged: {
Script.bindPropertyWithThis()
}
onAssignWithThisFromJsFileChanged: {
Script.bindProperty()
}
property Text text: Text { }
onAssignToValueTypeChanged: {
text.font.pixelSize = Qt.binding(function() { return aNumber * 10; })
a = Qt.binding(function() { return text.font.pixelSize; })
}
// detecting errors:
function myEmptyFunction() {
}
onAssignFuncWithoutReturnChanged: {
a = Qt.binding(myEmptyFunction);
}
function myStringFunction() {
return 'a string';
}
onAssignWrongTypeChanged: {
aNumber = Qt.binding(myStringFunction);
}
onAssignWrongTypeToValueTypeChanged: {
text.font.pixelSize = Qt.binding(function() { return 'a string'; })
}
}
|