aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmldelegatemodel/data/typedModelData.qml
blob: 08f1c7d68e5ddb9f3025827dc76ee21db3d0a663 (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
import QtQml

DelegateModel {
    id: root

    // useful object as model, int as modelData
    property ListModel singularModel: ListModel {
        ListElement {
            x: 11
        }
        ListElement {
            x: 12
        }
    }

    // same, useful, object as model and modelData
    property ListModel listModel: ListModel {
        ListElement {
            x: 13
            y: 14
        }
        ListElement {
            x: 15
            y: 16
        }
    }

    // useful but different objects as modelData and model
    // This is how the array accessor works. We can live with it.
    property var array: [
        {x: 17, y: 18}, {x: 19, y: 20}
    ]

    // useful but different objects as modelData and model
    // This is how the object accessor works. We can live with it.
    property QtObject object: QtObject {
        property int x: 21
        property int y: 22
    }

    property int n: -1

    model: {
        switch (n) {
        case 0: return singularModel
        case 1: return listModel
        case 2: return array
        case 3: return object
        }
        return undefined;
    }

    delegate: QtObject {
        required property point modelData
        required property QtObject model

        property real modelX: model.x
        property real modelDataX: modelData.x
        property point modelSelf: model
        property point modelDataSelf: modelData
        property point modelModelData: model.modelData
        property point modelAnonymous: model[""]
    }
}