aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicklistview/data/listview-sections.qml
blob: e9fb83910ada13db6eae03dd331e7672d44a4177 (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
import QtQuick 2.0

Rectangle {
    property bool sectionsInvalidOnCompletion
    width: 240
    height: 320
    color: "#ffffff"
    resources: [
        Component {
            id: myDelegate
            Item {
                id: wrapper

                function validateInitialSections() {
                    var invalid = false
                    if (index == 0) {
                        invalid |= wrapper.ListView.previousSection != ""
                    }
                    if (index == model.count - 1) {
                        invalid |= wrapper.ListView.nextSection != ""
                    }
                    if (index % 5 == 0 && index > 0) {
                        invalid |= wrapper.ListView.previousSection != Number(wrapper.ListView.section) - 1
                    } else if ((index + 1) % 5 == 0 && index < model.count - 1) {
                        invalid |= wrapper.ListView.nextSection != Number(wrapper.ListView.section) + 1
                    } else if (index > 0 && index < model.count - 1) {
                        invalid |= wrapper.ListView.previousSection != wrapper.ListView.section
                        invalid |= wrapper.ListView.nextSection != wrapper.ListView.section
                    }
                    sectionsInvalidOnCompletion |= invalid
                }

                objectName: "wrapper"
                height: ListView.previousSection != ListView.section ? 40 : 20;
                width: 240
                Rectangle {
                    y: wrapper.ListView.previousSection != wrapper.ListView.section ? 20 : 0
                    height: 20
                    width: parent.width
                    color: wrapper.ListView.isCurrentItem ? "lightsteelblue" : "white"
                    Text {
                        text: index
                    }
                    Text {
                        x: 30
                        id: textName
                        objectName: "textName"
                        text: name
                    }
                    Text {
                        x: 100
                        id: textNumber
                        objectName: "textNumber"
                        text: number
                    }
                    Text {
                        objectName: "nextSection"
                        x: 150
                        text: wrapper.ListView.nextSection
                    }
                    Text {
                        x: 200
                        text: wrapper.y
                    }
                }
                Rectangle {
                    color: "#99bb99"
                    height: wrapper.ListView.previousSection != wrapper.ListView.section ? 20 : 0
                    width: parent.width
                    visible: wrapper.ListView.previousSection != wrapper.ListView.section ? true : false
                    Text { text: wrapper.ListView.section }
                }
                ListView.onPreviousSectionChanged: validateInitialSections()
                ListView.onNextSectionChanged: validateInitialSections()
                ListView.onSectionChanged: validateInitialSections()
                Component.onCompleted: validateInitialSections()
            }
        }
    ]
    ListView {
        id: list
        objectName: "list"
        width: 240
        height: 320
        model: testModel
        delegate: myDelegate
        section.property: "number"
    }
}