Commit ee3269f7 authored by DonLakeFlyer's avatar DonLakeFlyer

Use FactValueSlider control for Altitude

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