Commit ee3269f7 authored by DonLakeFlyer's avatar DonLakeFlyer

Use FactValueSlider control for Altitude

parent 5df0103f
......@@ -220,6 +220,7 @@ void SimpleMissionItem::_setupMetaData(void)
if (!_altitudeMetaData) {
_altitudeMetaData = new FactMetaData(FactMetaData::valueTypeDouble);
_altitudeMetaData->setRawUnits("m");
_altitudeMetaData->setRawIncrement(1);
_altitudeMetaData->setDecimalPlaces(2);
enumStrings.clear();
......@@ -259,6 +260,7 @@ void SimpleMissionItem::_setupMetaData(void)
_missionItem._commandFact.setMetaData(_commandMetaData);
_missionItem._frameFact.setMetaData(_frameMetaData);
_altitudeFact.setMetaData(_altitudeMetaData);
_amslAltAboveTerrainFact.setMetaData(_altitudeMetaData);
}
SimpleMissionItem::~SimpleMissionItem()
......@@ -659,6 +661,7 @@ void SimpleMissionItem::_altitudeChanged(void)
}
if (_altitudeMode == AltitudeAboveTerrain) {
_amslAltAboveTerrainFact.setRawValue(qQNaN());
_terrainAltChanged();
} else {
_missionItem._param7Fact.setRawValue(_altitudeFact.rawValue());
......
......@@ -19,6 +19,12 @@ Rectangle {
property bool _specifiesAltitude: missionItem.specifiesAltitude
property bool _altModeIsTerrain: missionItem.altitudeMode === 2
property real _margin: ScreenTools.defaultFontPixelHeight / 2
ExclusiveGroup {
id: altRadios
onCurrentChanged: missionItem.altitudeMode = current.value
}
Column {
id: valuesColumn
......@@ -67,30 +73,62 @@ Rectangle {
}
}
GridLayout {
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
flow: GridLayout.TopToBottom
rows: missionItem.textFieldFacts.count +
missionItem.nanFacts.count +
(missionItem.speedSection.available ? 1 : 0) +
(_specifiesAltitude ? 1 : 0) +
(_altModeIsTerrain ? 1 : 0)
columns: 2
height: altColumn.y + altColumn.height + _margin
color: qgcPal.windowShade
QGCComboBox {
id: altCombo
model: [ qsTr("Alt (Rel)"), qsTr("AMSL"), qsTr("Above Terrain") ]
currentIndex: missionItem.altitudeMode
Layout.fillWidth: true
onActivated: missionItem.altitudeMode = index
Column {
id: altColumn
anchors.margins: _margin
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel {
font.pointSize: ScreenTools.smallFontPointSize
text: qsTr("Altitude")
}
RowLayout {
QGCRadioButton { text: qsTr("Rel"); exclusiveGroup: altRadios; checked: missionItem.altitudeMode === value; readonly property int value: 0 }
QGCRadioButton { text: qsTr("Abs"); exclusiveGroup: altRadios; checked: missionItem.altitudeMode === value; readonly property int value: 1 }
QGCRadioButton { text: qsTr("AGL"); exclusiveGroup: altRadios; checked: missionItem.altitudeMode === value; readonly property int value: 2 }
}
FactValueSlider {
fact: missionItem.altitude
digitCount: 3
incrementSlots: 1
visible: _specifiesAltitude
}
RowLayout {
spacing: _margin
QGCLabel {
text: qsTr("Actual AMSL Alt")
text: qsTr("Calculated Abs Alt")
font.pointSize: ScreenTools.smallFontPointSize
visible: _altModeIsTerrain
}
QGCLabel {
text: missionItem.amslAltAboveTerrain.valueString + " " + missionItem.amslAltAboveTerrain.units
visible: _altModeIsTerrain
}
}
}
}
GridLayout {
anchors.left: parent.left
anchors.right: parent.right
flow: GridLayout.TopToBottom
rows: missionItem.textFieldFacts.count +
missionItem.nanFacts.count +
(missionItem.speedSection.available ? 1 : 0)
columns: 2
Repeater {
model: missionItem.textFieldFacts
......@@ -117,18 +155,6 @@ Rectangle {
}
FactTextField {
showUnits: true
fact: missionItem.altitude
Layout.fillWidth: true
visible: _specifiesAltitude
}
FactLabel {
fact: missionItem.amslAltAboveTerrain
visible: _altModeIsTerrain
}
Repeater {
model: missionItem.textFieldFacts
......
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