@ -21,6 +21,8 @@ Rectangle {
property real _margin : ScreenTools . defaultFontPixelHeight / 2
property real _margin : ScreenTools . defaultFontPixelHeight / 2
property bool _supportsTerrainFrame : missionItem . masterController . supportsTerrain
property bool _supportsTerrainFrame : missionItem . masterController . supportsTerrain
property var _controllerVehicle : missionItem . masterController . controllerVehicle
property var _controllerVehicle : missionItem . masterController . controllerVehicle
property int _globalAltMode : missionItem . masterController . missionController . globalAltitudeMode
property bool _globalAltModeIsMixed : _globalAltMode == QGroundControl . AltitudeModeNone
property string _altModeRelativeHelpText : qsTr ( "Altitude relative to launch altitude" )
property string _altModeRelativeHelpText : qsTr ( "Altitude relative to launch altitude" )
property string _altModeAbsoluteHelpText : qsTr ( "Altitude above mean sea level" )
property string _altModeAbsoluteHelpText : qsTr ( "Altitude above mean sea level" )
@ -29,16 +31,16 @@ Rectangle {
function updateAltitudeModeText ( ) {
function updateAltitudeModeText ( ) {
if ( missionItem . altitudeMode === QGroundControl . AltitudeModeRelative ) {
if ( missionItem . altitudeMode === QGroundControl . AltitudeModeRelative ) {
altModeLabel . text = qsTr ( "Altitude" )
altModeLabel . text = QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeRelative )
altModeHelp . text = _altModeRelativeHelpText
altModeHelp . text = _altModeRelativeHelpText
} else if ( missionItem . altitudeMode === QGroundControl . AltitudeModeAbsolute ) {
} else if ( missionItem . altitudeMode === QGroundControl . AltitudeModeAbsolute ) {
altModeLabel . text = qsTr ( "Above Mean Sea Level" )
altModeLabel . text = QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeAbsolute )
altModeHelp . text = _altModeAbsoluteHelpText
altModeHelp . text = _altModeAbsoluteHelpText
} else if ( missionItem . altitudeMode === QGroundControl . AltitudeModeAboveTerrain ) {
} else if ( missionItem . altitudeMode === QGroundControl . AltitudeModeAboveTerrain ) {
altModeLabel . text = qsTr ( "Above Terrain" )
altModeLabel . text = QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeAboveTerrain )
altModeHelp . text = Qt . binding ( function ( ) { return _altModeAboveTerrainHelpText } )
altModeHelp . text = Qt . binding ( function ( ) { return _altModeAboveTerrainHelpText } )
} else if ( missionItem . altitudeMode === QGroundControl . AltitudeModeTerrainFrame ) {
} else if ( missionItem . altitudeMode === QGroundControl . AltitudeModeTerrainFrame ) {
altModeLabel . text = qsTr ( "Terrain Frame" )
altModeLabel . text = QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeTerrainFrame )
altModeHelp . text = _altModeTerrainFrameHelpText
altModeHelp . text = _altModeTerrainFrameHelpText
} else {
} else {
altModeLabel . text = qsTr ( "Internal Error" )
altModeLabel . text = qsTr ( "Internal Error" )
@ -149,23 +151,24 @@ Rectangle {
}
}
}
}
/ / T h i s c o n t r o l n e e d s t o m o r p h b e t w e e n a s i m p l e a l t i t u d e e n t r y f i e l d t o a m o r e c o m p l e x a l t m o d e p i c k e r b a s e d o n t h e g l o b a l p l a n a l t m o d e
Rectangle {
Rectangle {
anchors.left: parent . left
anchors.left: parent . left
anchors.right: parent . right
anchors.right: parent . right
height: altColumn . y + altColumn . height + _margin
height: altColumn . y + altColumn . height + _margin
color: qgcPal . windowShade
color: _globalAltModeIsMixed ? qgcPal.windowShade: qgcPal . window
visible: _specifiesAltitude
visible: _specifiesAltitude
Column {
ColumnLayout {
id: altColumn
id: altColumn
anchors.margins: _margin
anchors.margins: _globalAltModeIsMixed ? _ margin : 0
anchors.top: parent . top
anchors.top: parent . top
anchors.left: parent . left
anchors.left: parent . left
anchors.right: parent . right
anchors.right: parent . right
spacing: _margin
spacing: _globalAltModeIsMixed ? _ margin : 0
QGCLabel {
QGCLabel {
width: parent . width
Layout.fillWidth: true
wrapMode: Text . WordWrap
wrapMode: Text . WordWrap
font.pointSize: ScreenTools . smallFontPointSize
font.pointSize: ScreenTools . smallFontPointSize
text: qsTr ( "Altitude below specifies the approximate altitude of the ground. Normally 0 for landing back at original launch location." )
text: qsTr ( "Altitude below specifies the approximate altitude of the ground. Normally 0 for landing back at original launch location." )
@ -173,13 +176,14 @@ Rectangle {
}
}
Item {
Item {
width: altHamburger . x + altHamburger . width
width: altModeDropArrow . x + altModeDropArrow . width
height: altModeLabel . height
height: altModeLabel . height
visible: _globalAltModeIsMixed
QGCLabel { id: altModeLabel }
QGCLabel { id: altModeLabel }
QGCColoredImage {
QGCColoredImage {
id: altHamburger
id: altModeDropArrow
anchors.leftMargin: ScreenTools . defaultFontPixelWidth / 4
anchors.leftMargin: ScreenTools . defaultFontPixelWidth / 4
anchors.left: altModeLabel . right
anchors.left: altModeLabel . right
anchors.verticalCenter: altModeLabel . verticalCenter
anchors.verticalCenter: altModeLabel . verticalCenter
@ -192,21 +196,21 @@ Rectangle {
QGCMouseArea {
QGCMouseArea {
anchors.fill: parent
anchors.fill: parent
onClicked: altHamburger Menu . popup ( )
onClicked: altMode Menu . popup ( )
}
}
QGCMenu {
QGCMenu {
id: altHamburger Menu
id: altMode Menu
QGCMenuItem {
QGCMenuItem {
text: qsTr ( "Altitude Relative To Launch" )
text: QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeRelative )
checkable: true
checkable: true
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeRelative
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeRelative
onTriggered: missionItem . altitudeMode = QGroundControl . AltitudeModeRelative
onTriggered: missionItem . altitudeMode = QGroundControl . AltitudeModeRelative
}
}
QGCMenuItem {
QGCMenuItem {
text: qsTr ( "Altitude Above Mean Sea Level" )
text: QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeAbsolute )
checkable: true
checkable: true
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeAbsolute
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeAbsolute
visible: QGroundControl . corePlugin . options . showMissionAbsoluteAltitude
visible: QGroundControl . corePlugin . options . showMissionAbsoluteAltitude
@ -214,7 +218,7 @@ Rectangle {
}
}
QGCMenuItem {
QGCMenuItem {
text: qsTr ( "Altitude Above Terrain" )
text: QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeAboveTerrain )
checkable: true
checkable: true
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeAboveTerrain
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeAboveTerrain
onTriggered: missionItem . altitudeMode = QGroundControl . AltitudeModeAboveTerrain
onTriggered: missionItem . altitudeMode = QGroundControl . AltitudeModeAboveTerrain
@ -222,7 +226,7 @@ Rectangle {
}
}
QGCMenuItem {
QGCMenuItem {
text: qsTr ( "Terrain Frame" )
text: QGroundControl . altitudeModeShortDescription ( QGroundControl . AltitudeModeTerrainFrame )
checkable: true
checkable: true
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeTerrainFrame
checked: missionItem . altitudeMode === QGroundControl . AltitudeModeTerrainFrame
visible: _supportsTerrainFrame && ( missionItem . specifiesCoordinate || missionItem . specifiesAltitudeOnly )
visible: _supportsTerrainFrame && ( missionItem . specifiesCoordinate || missionItem . specifiesAltitudeOnly )
@ -231,20 +235,25 @@ Rectangle {
}
}
}
}
QGCLabel {
text: qsTr ( "Altitude" )
font.pointSize: ScreenTools . smallFontPointSize
visible: ! _globalAltModeIsMixed
}
AltitudeFactTextField {
AltitudeFactTextField {
id: altField
id: altField
Layout.fillWidth: true
fact: missionItem . altitude
fact: missionItem . altitude
altitudeMode: missionItem . altitudeMode
altitudeMode: missionItem . altitudeMode
anchors.left: parent . left
anchors.right: parent . right
}
}
QGCLabel {
QGCLabel {
id: altModeHelp
id: altModeHelp
Layout.fillWidth: true
wrapMode: Text . WordWrap
wrapMode: Text . WordWrap
font.pointSize: ScreenTools . smallFontPointSize
font.pointSize: ScreenTools . smallFontPointSize
anchors.left: parent . left
visible: _globalAltModeIsMixed
anchors.right: parent . right
}
}
}
}
}
}