Commit 8339e840 authored by Don Gagne's avatar Don Gagne

Rework InstrumentSwipeView

parent f5c3f3cf
import QtQuick 2.5 import QtQuick 2.5
import QtQuick.Controls 1.4 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.FlightMap 1.0 import QGroundControl.FlightMap 1.0
Item { Item {
id: _root id: _root
clip: true clip: true
height: valuesPage.height + pageIndicatorRow.anchors.topMargin + pageIndicatorRow.height height: column.height
property var qgcView ///< QGCView to use for showing dialogs property var qgcView ///< QGCView to use for showing dialogs
property color textColor property color textColor
property color backgroundColor property color backgroundColor
property var maxHeight ///< Maximum height that should be taken, smaller than this is ok property var maxHeight ///< Maximum height that should be taken, smaller than this is ok
property real _margins: ScreenTools.defaultFontPixelWidth / 2 property real _margins: ScreenTools.defaultFontPixelWidth / 2
property real _pageWidth: _root.width property real _pageWidth: _root.width
property int _currentPage: 0 property int _currentPage: 0
property int _maxPage: 2 property int _maxPage: 3
onWidthChanged: showPage(_currentPage)
function showPicker() { function showPicker() {
valuesPage.showPicker() valuesPage.showPicker()
} }
function showPage(pageIndex) { function showPage(pageIndex) {
_root.height = Qt.binding(function() { return _root.children[pageIndex].height + pageIndicatorRow.anchors.topMargin + pageIndicatorRow.height } ) pageRow.x = -(pageIndex * _pageWidth)
_root.children[0].x = -(pageIndex * _pageWidth)
}
ValuesWidget {
id: valuesPage
width: _pageWidth
qgcView: _root.qgcView
textColor: _root.textColor
maxHeight: _root.maxHeight
}
VehicleHealthWidget {
id: healthPage
anchors.left: valuesPage.right
width: _pageWidth
qgcView: _root.qgcView
textColor: _root.textColor
maxHeight: _root.maxHeight
} }
VibrationWidget { function showNextPage() {
id: vibrationPage if (_currentPage == _maxPage) {
anchors.left: healthPage.right _currentPage = 0
width: _pageWidth } else {
textColor: _root.textColor _currentPage++
backgroundColor: _root.backgroundColor
maxHeight: _root.maxHeight
}
Row {
id: pageIndicatorRow
anchors.bottom: parent.bottom
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"
}
} }
showPage(_currentPage)
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: showNextPage()
onClicked: {
if (_currentPage == _maxPage) {
_currentPage = 0
} else {
_currentPage++
}
showPage(_currentPage)
}
} }
/* Column {
Switching from swipe to click to change pages. Keeping swipe code for now in case of change back. id: column
MouseArea { anchors.left: parent.left
anchors.fill: parent anchors.right: parent.right
property real xDragStart Row {
property real xFirstPageSave id: pageRow
onPressed: { ValuesWidget {
if (mouse.button == Qt.LeftButton) { id: valuesPage
mouse.accepted = true width: _pageWidth
xDragStart = mouse.x qgcView: _root.qgcView
xFirstPageSave = _root.children[0].x 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
} }
} }
onPositionChanged: { Row {
_root.children[0].x = xFirstPageSave + mouse.x - xDragStart anchors.horizontalCenter: parent.horizontalCenter
} spacing: _margins
onReleased: { Repeater {
if (mouse.x < xDragStart) { model: _maxPage + 1
// Swipe left
_currentPage = Math.min(_currentPage + 1, _maxPage) Rectangle {
} else { height: radius * 2
// Swipe right width: radius * 2
_currentPage = Math.max(_currentPage - 1, 0) radius: ScreenTools.defaultFontPixelWidth / 3
border.color: textColor
border.width: 1
color: _currentPage == index ? textColor : "transparent"
}
} }
showPage(_currentPage)
} }
} }
*/
} }
...@@ -54,7 +54,7 @@ QGCFlickable { ...@@ -54,7 +54,7 @@ QGCFlickable {
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: showPicker() onClicked: showNextPage()
} }
Column { Column {
......
...@@ -34,6 +34,11 @@ QGCFlickable { ...@@ -34,6 +34,11 @@ QGCFlickable {
} }
} }
MouseArea {
anchors.fill: parent
onClicked: showNextPage()
}
Column { Column {
id: healthColumn id: healthColumn
width: parent.width width: parent.width
......
...@@ -39,6 +39,11 @@ QGCFlickable { ...@@ -39,6 +39,11 @@ QGCFlickable {
QGCPalette { id:qgcPal; colorGroupEnabled: true } QGCPalette { id:qgcPal; colorGroupEnabled: true }
MouseArea {
anchors.fill: parent
onClicked: showNextPage()
}
Item { Item {
id: innerItem id: innerItem
width: parent.width width: parent.width
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment