import QtQuick 2.0

Rectangle {
    property string sectionProperty: "number"
    property int sectionPositioning: ViewSection.InlineLabels
    width: 240
    height: 320
    color: "#ffffff"
    resources: [
        Component {
            id: myDelegate
            Item {
                id: wrapper
                objectName: "wrapper"
                property string section: ListView.section
                property string nextSection: ListView.nextSection
                property string prevSection: ListView.previousSection
                height: 20;
                width: 240
                Rectangle {
                    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
                    }
                }
                ListView.onRemove: SequentialAnimation {
                    PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: true }
                    NumberAnimation { target: wrapper; property: "height"; to: 0; duration: 100; easing.type: Easing.InOutQuad }
                    PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: false }
                }
            }
        }
    ]
    ListView {
        id: list
        objectName: "list"
        width: 240
        height: 320
        cacheBuffer: 60
        model: testModel
        delegate: myDelegate
        section.property: sectionProperty
        section.delegate: Rectangle {
            objectName: "sect_" + section
            color: "#99bb99"
            height: 20
            width: list.width
            Text { text: section + ",   " + parent.y + ",    " + parent.objectName }
        }
        section.labelPositioning: sectionPositioning
    }
}
