summaryrefslogtreecommitdiffstats
path: root/examples/sensors/qmlsensorgestures/GestureList.qml
blob: f7bc39dd247a7fe601099a40f240cd6cf8b110f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

//Import the declarative plugins
import QtQuick
import QtSensors

/* Layout
                                         gesturerect
                                        /
---------------------------------------/
|-------------------------------------|
||          labelGesture             ||
|-------------------------------------|
|-------------------------------------|
||                                   |<---- gestureListRect
||                                   ||
||                                   ||
||           gestureList             ||
||                                   ||
||                                   ||
||                                   ||
||                                   ||
||                                   ||
||                                   ||
|-------------------------------------|
*/

Rectangle {
    id: gesturerect
    border.width: 1
    anchors.margins: 5

    property string selectedGesture: ""

    SensorGesture {
        id: gesture
    }

    Text {
        id: labelGesture
        anchors.top: gesturerect.top
        anchors.left: gesturerect.left
        anchors.right: gesturerect.right
        horizontalAlignment: Text.AlignHCenter
        font.pixelSize: 30
        font.bold: true
        text: "Gestures"
    }

    Rectangle {
        id: gestureListRect
        border.width: 1
        anchors.top: labelGesture.bottom
        anchors.left: gesturerect.left
        anchors.right: gesturerect.right
        anchors.bottom: gesturerect.bottom
        anchors.margins: 5

//! [4]
        ListView {
            id: gestureList
//! [4]
            anchors.fill: gestureListRect
            anchors.margins: 5
//! [5]
            model: gesture.availableGestures
//! [5]
            focus: true
            currentIndex: -1
            delegate: gestureListDelegate
            clip: true
//! [6]
        }
//! [6]

        Component {
            id: gestureListDelegate

            Rectangle {
                width: gestureList.width
                height: itemText.height
                color: (index === gestureList.currentIndex ? "#999933" : "#FFFFFF")

                Text {
                    id: itemText
                    text: model.modelData
                }
                MouseArea {
                    anchors.fill: parent
                    onClicked: {
                        gestureList.currentIndex = index
                        selectedGesture = model.modelData
                    }
                }
            }
        }
    }
}