diff --git a/qgcresources.qrc b/qgcresources.qrc index c51db63e3df42b24cb01fbb9e94ec6ae46bce2c9..e87e4a066b91395b533b3d9914ee2a1b0f73f449 100644 --- a/qgcresources.qrc +++ b/qgcresources.qrc @@ -195,6 +195,7 @@ resources/counter-clockwise-arrow.svg resources/chevron-down.svg resources/chevron-up.svg + resources/DropArrow.svg resources/gear-black.svg resources/gear-white.svg resources/helicoptericon.svg diff --git a/resources/DropArrow.svg b/resources/DropArrow.svg new file mode 100644 index 0000000000000000000000000000000000000000..368bf50373eb64abb345c013ac78a09155feed32 --- /dev/null +++ b/resources/DropArrow.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/PlanView/SimpleItemEditor.qml b/src/PlanView/SimpleItemEditor.qml index e638b45aa3a9102cc24f19951b864eaa7b8e20de..8c765710cde9cbff90c65cbaa8ab2082b6866222 100644 --- a/src/PlanView/SimpleItemEditor.qml +++ b/src/PlanView/SimpleItemEditor.qml @@ -32,22 +32,32 @@ Rectangle { property string _altModeAboveTerrainHelpText: qsTr("Altitude above terrain\nActual AMSL altitude: %1 %2").arg(missionItem.amslAltAboveTerrain.valueString).arg(missionItem.amslAltAboveTerrain.units) property string _altModeTerrainFrameHelpText: qsTr("Using terrain reference frame") + readonly property string _altModeRelativeExtraUnits: qsTr(" (Rel)") + readonly property string _altModeAbsoluteExtraUnits: qsTr(" (AMSL)") + readonly property string _altModeAboveTerrainExtraUnits: qsTr(" (Abv Terr)") + readonly property string _altModeTerrainFrameExtraUnits: qsTr(" (TerrF)") + function updateAltitudeModeText() { if (missionItem.altitudeMode === _altModeRelative) { altModeLabel.text = qsTr("Altitude") altModeHelp.text = _altModeRelativeHelpText + altField.extraUnits = _altModeRelativeExtraUnits } else if (missionItem.altitudeMode === _altModeAbsolute) { altModeLabel.text = qsTr("Above Mean Sea Level") altModeHelp.text = _altModeAbsoluteHelpText + altField.extraUnits = _altModeAbsoluteExtraUnits } else if (missionItem.altitudeMode === _altModeAboveTerrain) { altModeLabel.text = qsTr("Above Terrain") altModeHelp.text = Qt.binding(function() { return _altModeAboveTerrainHelpText }) + altField.extraUnits = _altModeAboveTerrainExtraUnits } else if (missionItem.altitudeMode === _altModeTerrainFrame) { altModeLabel.text = qsTr("Terrain Frame") altModeHelp.text = _altModeTerrainFrameHelpText + altField.extraUnits = _altModeTerrainFrameExtraUnits } else { altModeLabel.text = qsTr("Internal Error") altModeHelp.text = "" + altField.extraUnits = "" } } @@ -130,11 +140,11 @@ Rectangle { id: altHamburger anchors.leftMargin: ScreenTools.defaultFontPixelWidth / 4 anchors.left: altModeLabel.right - anchors.top: altModeLabel.top - width: height - height: altModeLabel.height + anchors.verticalCenter: altModeLabel.verticalCenter + width: ScreenTools.defaultFontPixelHeight / 2 + height: width sourceSize.height: height - source: "qrc:/qmlimages/Hamburger.svg" + source: "/res/DropArrow.svg" color: qgcPal.text } @@ -166,6 +176,7 @@ Rectangle { checkable: true checked: missionItem.altitudeMode === _altModeAboveTerrain onTriggered: missionItem.altitudeMode = _altModeAboveTerrain + visible: missionItem.specifiesCoordinate } MenuItem { @@ -179,15 +190,21 @@ Rectangle { } FactTextField { - fact: missionItem.altitude + id: altField + fact: missionItem.altitude + unitsLabel: fact.units + extraUnits + anchors.left: parent.left + anchors.right: parent.right + + property string extraUnits } QGCLabel { - id: altModeHelp - anchors.left: parent.left - anchors.right: parent.right - wrapMode: Text.WordWrap - font.pointSize: ScreenTools.smallFontPointSize + id: altModeHelp + wrapMode: Text.WordWrap + font.pointSize: ScreenTools.smallFontPointSize + anchors.left: parent.left + anchors.right: parent.right } } }