aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlecmascript/data/functionAssignment.2.qml
blob: 943d34ca84c4b1539c554246bd3127217af653e2 (plain)
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'; })
    }
}