1/**************************************************************************** 2** 3** Copyright (C) 2016 The Qt Company Ltd. 4** Contact: https://www.qt.io/licensing/ 5** 6** This file is part of the Qt Charts module of the Qt Toolkit. 7** 8** $QT_BEGIN_LICENSE:GPL$ 9** Commercial License Usage 10** Licensees holding valid commercial Qt licenses may use this file in 11** accordance with the commercial license agreement provided with the 12** Software or, alternatively, in accordance with the terms contained in 13** a written agreement between you and The Qt Company. For licensing terms 14** and conditions see https://www.qt.io/terms-conditions. For further 15** information use the contact form at https://www.qt.io/contact-us. 16** 17** GNU General Public License Usage 18** Alternatively, this file may be used under the terms of the GNU 19** General Public License version 3 or (at your option) any later version 20** approved by the KDE Free Qt Foundation. The licenses are as published by 21** the Free Software Foundation and appearing in the file LICENSE.GPL3 22** included in the packaging of this file. Please review the following 23** information to ensure the GNU General Public License requirements will 24** be met: https://www.gnu.org/licenses/gpl-3.0.html. 25** 26** $QT_END_LICENSE$ 27** 28****************************************************************************/ 29 30import QtQuick 2.0 31 32Item { 33 width: 440 34 height: 330 35 property bool sourceLoaded: false 36 37 ListView { 38 id: root 39 focus: true 40 anchors.fill: parent 41 snapMode: ListView.SnapOneItem 42 highlightRangeMode: ListView.StrictlyEnforceRange 43 highlightMoveDuration: 250 44 orientation: ListView.Horizontal 45 boundsBehavior: Flickable.StopAtBounds 46 47 onCurrentIndexChanged: { 48 if (infoText.opacity > 0.0) { 49 if (sourceLoaded) 50 infoText.opacity = 0.0; 51 else if (currentIndex != 0) 52 currentIndex = 0; 53 } 54 } 55 56 model: ListModel { 57 ListElement {component: "View1.qml"} 58 ListElement {component: "View2.qml"} 59 ListElement {component: "View3.qml"} 60 } 61 62 delegate: Loader { 63 width: root.width 64 height: root.height 65 66 source: component 67 asynchronous: true 68 69 onLoaded: sourceLoaded = true 70 } 71 } 72 73 Rectangle { 74 id: infoText 75 anchors.centerIn: parent 76 width: parent.width 77 height: 40 78 color: "black" 79 Text { 80 color: "white" 81 anchors.centerIn: parent 82 text: "You can navigate between views using swipe or arrow keys" 83 } 84 85 Behavior on opacity { 86 NumberAnimation { duration: 400 } 87 } 88 } 89} 90