7import QGroundControl.Controls
10 title: qsTr("Altitude Frame")
13 property var rgRemoveModes
14 property var updateAltFrameFn
15 property var currentAltFrame
17 Component.onCompleted: {
18 // Populate model dynamically since ListElement cannot use script expressions
19 buttonModel.append({ modeName: QGroundControl.altitudeFrameShortDescription(QGroundControl.AltitudeFrameRelative),
20 help: qsTr("Altitude above home position"),
21 modeValue: QGroundControl.AltitudeFrameRelative })
22 buttonModel.append({ modeName: QGroundControl.altitudeFrameShortDescription(QGroundControl.AltitudeFrameAbsolute),
23 help: qsTr("Altitude above mean sea level"),
24 modeValue: QGroundControl.AltitudeFrameAbsolute })
25 buttonModel.append({ modeName: QGroundControl.altitudeFrameShortDescription(QGroundControl.AltitudeFrameTerrain),
26 help: qsTr("Altitude above terrain at waypoint using MAVLink terrain protocol"),
27 modeValue: QGroundControl.AltitudeFrameTerrain })
28 buttonModel.append({ modeName: QGroundControl.altitudeFrameShortDescription(QGroundControl.AltitudeFrameCalcAboveTerrain),
29 help: qsTr("Altitudes are terrain-relative; converting to AMSL before upload"),
30 modeValue: QGroundControl.AltitudeFrameCalcAboveTerrain })
31 buttonModel.append({ modeName: QGroundControl.altitudeFrameShortDescription(QGroundControl.AltitudeFrameMixed),
32 help: qsTr("Each waypoint specifies its own altitude frame"),
33 modeValue: QGroundControl.AltitudeFrameMixed })
35 // Check for custom build override on AMSL usage
36 if (!QGroundControl.corePlugin.options.showMissionAbsoluteAltitude && currentAltFrame != QGroundControl.AltitudeFrameAbsolute) {
37 rgRemoveModes.push(QGroundControl.AltitudeFrameAbsolute)
40 // Remove modes specified by consumer
41 for (var i=0; i<rgRemoveModes.length; i++) {
42 for (var j=0; j<buttonModel.count; j++) {
43 if (buttonModel.get(j).modeValue == rgRemoveModes[i]) {
50 buttonRepeater.model = buttonModel
58 spacing: ScreenTools.defaultFontPixelWidth
61 text: qsTr("Altitude frame for mission items")
62 font.pointSize: ScreenTools.smallFontPointSize
70 checked: modeValue == currentAltFrame
72 background: Rectangle {
73 radius: ScreenTools.defaultFontPixelHeight / 2
74 color: pressed | hovered | checked ? QGroundControl.globalPalette.buttonHighlight: QGroundControl.globalPalette.button
83 color: pressed | hovered | checked ? QGroundControl.globalPalette.buttonHighlightText: QGroundControl.globalPalette.buttonText
87 width: ScreenTools.defaultFontPixelWidth * 40
89 wrapMode: Label.WordWrap
90 font.pointSize: ScreenTools.smallFontPointSize
91 color: modeNameLabel.color
96 updateAltFrameFn(modeValue)