Revision control

++ // Copyright (C) 2017 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ import QtQuick
++
++ Rectangle {
++ width: 400
++ height: 240
++ color: "white"
++
++ ListModel {
++ id: appModel
++ ListElement {
++ name: "Music"
++ icon: "pics/AudioPlayer_48.png"
++ }
++ ListElement {
++ name: "Movies"
++ icon: "pics/VideoPlayer_48.png"
++ }
++ ListElement {
++ name: "Camera"
++ icon: "pics/Camera_48.png"
++ }
++ ListElement {
++ name: "Calendar"
++ icon: "pics/DateBook_48.png"
++ }
++ ListElement {
++ name: "Messaging"
++ icon: "pics/EMail_48.png"
++ }
++ ListElement {
++ name: "Todo List"
++ icon: "pics/TodoList_48.png"
++ }
++ ListElement {
++ name: "Contacts"
++ icon: "pics/AddressBook_48.png"
++ }
++ }
++
++ Component {
++ id: appDelegate
++ Item {
++ width: 100
++ height: 100
++ scale: PathView.iconScale
++
++ required property string name
++ required property string icon
++ required property int index
++
++ Image {
++ id: myIcon
++ y: 20
++ anchors.horizontalCenter: parent.horizontalCenter
++ source: parent.icon
++ }
++ Text {
++ anchors {
++ top: myIcon.bottom
++ horizontalCenter: parent.horizontalCenter
++ }
++ text: parent.name
++ }
++
++ MouseArea {
++ anchors.fill: parent
++ onClicked: view.currentIndex = parent.index
++ }
++ }
++ }
++
++ Component {
++ id: appHighlight
++ Rectangle {
++ width: 80
++ height: 80
++ color: "lightsteelblue"
++ }
++ }
++
++ PathView {
++ id: view
++ anchors.fill: parent
++ highlight: appHighlight
++ preferredHighlightBegin: 0.5
++ preferredHighlightEnd: 0.5
++ focus: true
++ model: appModel
++ delegate: appDelegate
++ path: Path {
++ startX: 10
++ startY: 50
++ PathAttribute {
++ name: "iconScale"
++ value: 0.5
++ }
++ PathQuad {
++ x: 200
++ y: 150
++ controlX: 50
++ controlY: 200
++ }
++ PathAttribute {
++ name: "iconScale"
++ value: 1.0
++ }
++ PathQuad {
++ x: 390
++ y: 50
++ controlX: 350
++ controlY: 200
++ }
++ PathAttribute {
++ name: "iconScale"
++ value: 0.5
++ }
++ }
++ }
++ }