blob: e9fb83910ada13db6eae03dd331e7672d44a4177 [file] [log] [blame]
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"
}
}