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
100
101
102
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.2
import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.FlightMap 1.0
Item {
id: _root
clip: true
height: column.height
property var qgcView ///< QGCView to use for showing dialogs
property color textColor
property color backgroundColor
property var maxHeight ///< Maximum height that should be taken, smaller than this is ok
property real _margins: ScreenTools.defaultFontPixelWidth / 2
property real _pageWidth: _root.width
property int _currentPage: 0
property int _maxPage: 3
onWidthChanged: showPage(_currentPage)
function showPicker() {
valuesPage.showPicker()
}
function showPage(pageIndex) {
pageRow.x = -(pageIndex * _pageWidth)
_currentPage = pageIndex
}
function showNextPage() {
if (_currentPage == _maxPage) {
_currentPage = 0
} else {
_currentPage++
}
showPage(_currentPage)
}
MouseArea {
anchors.fill: parent
onClicked: showNextPage()
}
Column {
id: column
anchors.left: parent.left
anchors.right: parent.right
Row {
id: pageRow
ValuesWidget {
id: valuesPage
width: _pageWidth
qgcView: _root.qgcView
textColor: _root.textColor
maxHeight: _root.maxHeight
}
CameraWidget {
width: _pageWidth
qgcView: _root.qgcView
textColor: _root.textColor
maxHeight: _root.maxHeight
}
VehicleHealthWidget {
width: _pageWidth
qgcView: _root.qgcView
textColor: _root.textColor
maxHeight: _root.maxHeight
}
VibrationWidget {
width: _pageWidth
textColor: _root.textColor
backgroundColor: _root.backgroundColor
maxHeight: _root.maxHeight
}
}
Row {
anchors.horizontalCenter: parent.horizontalCenter
spacing: _margins
Repeater {
model: _maxPage + 1
Rectangle {
height: radius * 2
width: radius * 2
radius: ScreenTools.defaultFontPixelWidth / 3
border.color: textColor
border.width: 1
color: _currentPage == index ? textColor : "transparent"
}
}
}
}
}