Revision control

++ // Copyright (C) 2017 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ // This example demonstrates placing items in a view using
++ // an ObjectModel
++
++ import QtQuick
++ import QtQml.Models
++
++ pragma ComponentBehavior: Bound
++
++ Rectangle {
++ id: root
++ color: "lightgray"
++ width: 320
++ height: 480
++ property bool printDestruction: false
++
++ //! [0]
++ ObjectModel {
++ id: itemModel
++
++ Rectangle {
++ width: view.width
++ height: view.height
++ color: "#FFFEF0"
++
++ Text {
++ anchors.centerIn: parent
++ text: qsTr("Page 1")
++ font.bold: true
++ }
++
++ Component.onDestruction: if (root.printDestruction) print("destroyed 1")
++ }
++ Rectangle {
++ width: view.width
++ height: view.height
++ color: "#F0FFF7"
++
++ Text {
++ anchors.centerIn: parent
++ text: qsTr("Page 2")
++ font.bold: true
++ }
++
++ Component.onDestruction: if (root.printDestruction) print("destroyed 2")
++ }
++ Rectangle {
++ width: view.width
++ height: view.height
++ color: "#F4F0FF"
++
++ Text {
++ anchors.centerIn: parent
++ text: qsTr("Page 3")
++ font.bold: true
++ }
++
++ Component.onDestruction: if (root.printDestruction) print("destroyed 3")
++ }
++ }
++
++ ListView {
++ id: view
++ anchors {
++ fill: parent
++ bottomMargin: 30
++ }
++ model: itemModel
++ preferredHighlightBegin: 0
++ preferredHighlightEnd: 0
++ highlightRangeMode: ListView.StrictlyEnforceRange
++ orientation: ListView.Horizontal
++ snapMode: ListView.SnapOneItem
++ flickDeceleration: 2000
++ cacheBuffer: 200
++ }
++ //! [0]
++ Rectangle {
++ width: root.width
++ height: 30
++ anchors {
++ top: view.bottom
++ bottom: parent.bottom
++ }
++ color: "gray"
++
++ Row {
++ anchors.centerIn: parent
++ spacing: 20
++
++ Repeater {
++ model: itemModel.count
++ delegate: Rectangle {
++ required property int index
++
++ width: 5
++ height: 5
++ radius: 3
++ color: view.currentIndex === index ? "blue" : "white"
++
++ MouseArea {
++ anchors.centerIn: parent
++ width: 20
++ height: 20
++ onClicked: view.currentIndex = parent.index
++ }
++ }
++ }
++ }
++ }
++ }