aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicklistview/data/listviewtest-package.qml
blob: 54d4dabc86ba7819e9f64403c77f07aa7138d4ff (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import QtQuick 2.0

Rectangle {
    id: root
    width: 240
    height: 320
    color: "#ffffff"

    property int count: list.count
    property bool showHeader: false
    property bool showFooter: false
    property real hr: list.visibleArea.heightRatio
    function heightRatio() {
        return list.visibleArea.heightRatio
    }

    function checkProperties() {
        testObject.error = false;
        if (visualModel.model != testModel) {
            console.log("model property incorrect");
            testObject.error = true;
        }
        if (!testObject.animate && visualModel.delegate != myDelegate) {
            console.log("delegate property incorrect - expected myDelegate");
            testObject.error = true;
        }
        if (testObject.animate && visualModel.delegate != animatedDelegate) {
            console.log("delegate property incorrect - expected animatedDelegate");
            testObject.error = true;
        }
        if (testObject.invalidHighlight && list.highlight != invalidHl) {
            console.log("highlight property incorrect - expected invalidHl");
            testObject.error = true;
        }
        if (!testObject.invalidHighlight && list.highlight != myHighlight) {
            console.log("highlight property incorrect - expected myHighlight");
            testObject.error = true;
        }
    }
    resources: [
        Component {
            id: myDelegate
            Package {
                Rectangle {
                    id: wrapper
                    objectName: "wrapper"
                    height: 20
                    width: 240
                    Package.name: "package"
                    Text {
                        text: index
                    }
                    Text {
                        x: 30
                        id: textName
                        objectName: "textName"
                        text: name
                    }
                    Text {
                        x: 120
                        id: textNumber
                        objectName: "textNumber"
                        text: number
                    }
                    Text {
                        x: 200
                        text: wrapper.y
                    }
                    color: ListView.isCurrentItem ? "lightsteelblue" : "white"
                }
            }
        },
        Component {
            id: animatedDelegate
            Package {
                Rectangle {
                    id: wrapper
                    objectName: "wrapper"
                    height: 20
                    width: 240
                    Package.name: "package"
                    Text {
                        text: index
                    }
                    Text {
                        x: 30
                        id: textName
                        objectName: "textName"
                        text: name
                    }
                    Text {
                        x: 120
                        id: textNumber
                        objectName: "textNumber"
                        text: number
                    }
                    Text {
                        x: 200
                        text: wrapper.y
                    }
                    color: ListView.isCurrentItem ? "lightsteelblue" : "white"
                    ListView.onRemove: SequentialAnimation {
                        PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: true }
                        NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: "InOutQuad" }
                        PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: false }

                    }
                }
            }
        },
        Component {
            id: myHighlight
            Rectangle { color: "green" }
        },
        Component {
            id: invalidHl
            SmoothedAnimation {}
        },
        Component {
            id: headerFooter
            Rectangle { height: 30; width: 240; color: "blue" }
        },
        VisualDataModel {
           id: visualModel

           model: testModel
           delegate: testObject.animate ? animatedDelegate : myDelegate
        }

    ]
    ListView {
        id: list
        objectName: "list"
        focus: true
        width: 240
        height: 320
        model: visualModel.parts.package
        highlight: testObject.invalidHighlight ? invalidHl : myHighlight
        highlightMoveSpeed: 1000
        highlightResizeSpeed: 1000
        cacheBuffer: testObject.cacheBuffer
        header: root.showHeader ? headerFooter : null
        footer: root.showFooter ? headerFooter : null
    }
}