5import QGroundControl.Controls
9 radius: ScreenTools.defaultFontPixelWidth * 0.5
14 property var missionController
16 signal setCurrentSeqNum(int seqNum)
18 property real _margins: ScreenTools.defaultFontPixelWidth / 2
19 property var _visualItems: missionController.visualItems
20 property real _altRange: _maxAMSLAltitude - _minAMSLAltitude
21 property real _indicatorSpacing: 5
22 property real _minAMSLAltitude: isNaN(terrainProfile.minAMSLAlt) ? 0 : terrainProfile.minAMSLAlt
23 property real _maxAMSLAltitude: isNaN(terrainProfile.maxAMSLAlt) ? 100 : terrainProfile.maxAMSLAlt
24 property real _missionTotalDistance: isNaN(missionController.missionTotalDistance) ? 100 : missionController.missionTotalDistance
25 property var _unitsConversion: QGroundControl.unitsConversion
27 QGCPalette { id: qgcPal }
31 anchors.top: parent.bottom
33 font.pointSize: ScreenTools.smallFontPointSize
34 text: qsTr("Height AMSL (%1)").arg(_unitsConversion.appSettingsVerticalDistanceUnitsString)
35 horizontalAlignment: Text.AlignHCenter
37 transformOrigin: Item.TopLeft
41 id: terrainProfileFlickable
42 anchors.top: parent.top
43 anchors.bottom: parent.bottom
44 anchors.leftMargin: titleLabel.contentHeight
45 anchors.left: parent.left
46 anchors.right: parent.right
50 height: terrainProfileFlickable.height
51 width: terrainProfileFlickable.width
60 backgroundColor: "transparent"
67 max: _unitsConversion.metersToAppSettingsHorizontalDistanceUnits(missionController.missionTotalDistance)
69 labelsFont.family: ScreenTools.fixedFontFamily
70 labelsFont.pointSize: ScreenTools.smallFontPointSize
71 labelsColor: qgcPal.text
73 gridLineColor: applyOpacity(qgcPal.text, 0.25)
78 min: _unitsConversion.metersToAppSettingsVerticalDistanceUnits(_minAMSLAltitude)
79 max: _unitsConversion.metersToAppSettingsVerticalDistanceUnits(_maxAMSLAltitude)
81 labelsFont.family: ScreenTools.fixedFontFamily
82 labelsFont.pointSize: ScreenTools.smallFontPointSize
83 labelsColor: qgcPal.text
85 gridLineColor: applyOpacity(qgcPal.text, 0.25)
94 XYPoint { x: 0; y: _unitsConversion.metersToAppSettingsVerticalDistanceUnits(_minAMSLAltitude) }
95 XYPoint { x: _unitsConversion.metersToAppSettingsHorizontalDistanceUnits(_missionTotalDistance); y: _unitsConversion.metersToAppSettingsVerticalDistanceUnits(_maxAMSLAltitude) }
103 height: chart.plotArea.height
104 visibleWidth: chart.plotArea.width
105 missionController: root.missionController
108 model: missionController.visualItems
113 visible: object.specifiesCoordinate && !object.standaloneCoordinate
117 height: terrainProfile.height
120 x: (object.distanceFromStart * terrainProfile.pixelsPerMeter)
121 visible: object.isSimpleItem || object.isSingleItem
123 MissionItemIndexLabel {
124 anchors.horizontalCenter: parent.horizontalCenter
125 anchors.bottom: parent.bottom
127 checked: object.isCurrentItem
128 label: object.abbreviation.charAt(0)
129 index: object.abbreviation.charAt(0) > 'A' && object.abbreviation.charAt(0) < 'z' ? -1 : object.sequenceNumber
130 onClicked: root.setCurrentSeqNum(object.sequenceNumber)
136 height: terrainProfile.height
139 x: (object.distanceFromStart * terrainProfile.pixelsPerMeter)
140 visible: complexItem.visible
142 MissionItemIndexLabel {
143 anchors.horizontalCenter: parent.horizontalCenter
144 anchors.bottom: parent.bottom
146 checked: object.isCurrentItem
147 index: object.sequenceNumber
148 onClicked: root.setCurrentSeqNum(object.sequenceNumber)
154 height: terrainProfile.height
157 x: ((object.distanceFromStart + object.complexDistance) * terrainProfile.pixelsPerMeter)
158 visible: complexItem.visible
160 MissionItemIndexLabel {
161 anchors.horizontalCenter: parent.horizontalCenter
162 anchors.bottom: parent.bottom
164 checked: object.isCurrentItem
165 index: object.lastSequenceNumber
166 onClicked: root.setCurrentSeqNum(object.sequenceNumber)
172 anchors.bottom: parent.bottom
173 x: (object.distanceFromStart * terrainProfile.pixelsPerMeter)
174 width: complexItem.visible ? object.complexDistance * terrainProfile.pixelsPerMeter : 0
175 height: patternNameLabel.height
178 visible: !object.isSimpleItem && !object.isSingleItem
182 onClicked: root.setCurrentSeqNum(object.sequenceNumber)
187 anchors.horizontalCenter: parent.horizontalCenter
188 text: complexItem.visible ? object.patternName : ""
197 function applyOpacity(colorIn, opacity){
198 return Qt.rgba(colorIn.r, colorIn.g, colorIn.b, opacity)