diff --git a/src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml b/src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml index 85a7fa5c36877d732f2ee00e7f7ba8a600df7bad..af13d533cfd9330317dbe2db9550afc0f267a14d 100644 --- a/src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml +++ b/src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml @@ -40,7 +40,7 @@ QGCView { QGCPalette { id: palette; colorGroupEnabled: enabled } - property Fact _failsafeBattEnabled: controller.getParameterFact(-1, "FS_BATT_ENABLE") + property Fact _failsafeBattEnable: controller.getParameterFact(-1, "FS_BATT_ENABLE") property Fact _failsafeBattMah: controller.getParameterFact(-1, "FS_BATT_MAH") property Fact _failsafeBattVoltage: controller.getParameterFact(-1, "FS_BATT_VOLTAGE") property Fact _failsafeThrEnable: controller.getParameterFact(-1, "FS_THR_ENABLE") @@ -72,6 +72,7 @@ QGCView { clip: true anchors.fill: parent boundsBehavior: Flickable.StopAtBounds + contentHeight: rtlSettings.y + rtlSettings.height flickableDirection: Flickable.VerticalFlick QGCLabel { @@ -81,13 +82,14 @@ QGCView { } Rectangle { - id: failsafeSettings - anchors.topMargin: _margins / 2 - anchors.left: parent.left - anchors.right: parent.right - anchors.top: failsafeLabel.bottom - height: fenceAltMaxField.y + fenceAltMaxField.height + _margins - color: palette.windowShade + id: failsafeSettings + anchors.topMargin: _margins / 2 + anchors.rightMargin: _margins + anchors.left: parent.left + anchors.top: failsafeLabel.bottom + width: throttleEnableCombo.x + throttleEnableCombo.x + _margins + height: mahField.y + mahField.height + _margins + color: palette.windowShade QGCLabel { id: throttleEnableLabel @@ -141,9 +143,9 @@ QGCView { anchors.top: throttlePWMField.bottom width: voltageField.width model: ["Disabled", "Land", "Return to Launch"] - currentIndex: _failsafeBattEnabled.value + currentIndex: _failsafeBattEnable.value - onActivated: _failsafeBattEnabled.value = index + onActivated: _failsafeBattEnable.value = index } QGCCheckBox { @@ -190,21 +192,20 @@ QGCView { QGCLabel { id: geoFenceLabel - anchors.topMargin: _margins - anchors.left: parent.left - anchors.right: parent.right - anchors.top: failsafeSettings.bottom - text: "GeoFence" - font.weight: Font.DemiBold + anchors.leftMargin: _margins + anchors.left: failsafeSettings.right + anchors.top: parent.top + text: "GeoFence" + font.weight: Font.DemiBold } Rectangle { id: geoFenceSettings anchors.topMargin: _margins / 2 - anchors.left: parent.left - anchors.right: parent.right + anchors.left: geoFenceLabel.left anchors.top: geoFenceLabel.bottom - height: fenceAltMaxField.y + fenceAltMaxField.height + _margins + anchors.bottom: failsafeSettings.bottom + width: fenceAltMaxField.x + fenceAltMaxField.width + _margins color: palette.windowShade QGCCheckBox { @@ -324,10 +325,11 @@ QGCView { } Rectangle { + id: rtlSettings anchors.topMargin: _margins / 2 anchors.left: parent.left - anchors.right: parent.right anchors.top: rtlLabel.bottom + width: rltAltFinalField.x + rltAltFinalField.width + _margins height: rltAltFinalField.y + rltAltFinalField.height + _margins color: palette.windowShade diff --git a/src/AutoPilotPlugins/APM/APMSafetyComponentSummaryCopter.qml b/src/AutoPilotPlugins/APM/APMSafetyComponentSummaryCopter.qml index 4140ef7f86610901887431b6f24498a62eda305d..0d2328082b3f05d4ae42c94feb2ec67caf8d0975 100644 --- a/src/AutoPilotPlugins/APM/APMSafetyComponentSummaryCopter.qml +++ b/src/AutoPilotPlugins/APM/APMSafetyComponentSummaryCopter.qml @@ -14,6 +14,9 @@ FactPanel { QGCPalette { id: qgcPal; colorGroupEnabled: enabled } FactPanelController { id: controller; factPanel: panel } + property Fact _failsafeBattEnable: controller.getParameterFact(-1, "FS_BATT_ENABLE") + property Fact _failsafeThrEnable: controller.getParameterFact(-1, "FS_THR_ENABLE") + property Fact _fenceAction: controller.getParameterFact(-1, "FENCE_ACTION") property Fact _fenceEnable: controller.getParameterFact(-1, "FENCE_ENABLE") property Fact _fenceType: controller.getParameterFact(-1, "FENCE_TYPE") @@ -23,10 +26,75 @@ FactPanel { property Fact _rtlAltFinalFact: controller.getParameterFact(-1, "RTL_ALT_FINAL") property Fact _landSpeedFact: controller.getParameterFact(-1, "LAND_SPEED") + property string _failsafeBattEnableText + property string _failsafeThrEnableText + + Component.onCompleted: { + setFailsafeBattEnableText() + setFailsafeThrEnableText() + } + + Connections { + target: _failsafeBattEnable + + onValueChanged: setFailsafeBattEnableText() + } + + Connections { + target: _failsafeThrEnable + + onValueChanged: setFailsafeThrEnableText() + } + + function setFailsafeThrEnableText() { + switch (_failsafeThrEnable.value) { + case 0: + _failsafeThrEnableText = "Disabled" + break + case 1: + _failsafeThrEnableText = "Always RTL" + break + case 2: + _failsafeThrEnableText = "Continue with Mission in Auto Mode" + break + case 3: + _failsafeThrEnableText = "Always Land" + break + default: + _failsafeThrEnableText = "Unknown" + } + } + + function setFailsafeBattEnableText() { + switch (_failsafeBattEnable.value) { + case 0: + _failsafeBattEnableText = "Disabled" + break + case 1: + _failsafeBattEnableText = "Land" + break + case 2: + _failsafeBattEnableText = "Return to Launch" + break + default: + _failsafeThrEnableText = "Unknown" + } + } + Column { anchors.fill: parent anchors.margins: 8 + VehicleSummaryRow { + labelText: "Throttle failsafe:" + valueText: _failsafeThrEnableText + } + + VehicleSummaryRow { + labelText: "Battery failsafe:" + valueText: _failsafeBattEnableText + } + VehicleSummaryRow { labelText: "GeoFence:" valueText: _fenceEnable.value == 0 || _fenceType == 0 ? @@ -41,6 +109,7 @@ FactPanel { valueText: _fenceAction.value == 0 ? "Report only" : (_fenceAction.value == 1 ? "RTL or Land" : "Unknown") + visible: _fenceEnable.value != 0 } VehicleSummaryRow { diff --git a/src/QmlControls/QGCCheckBox.qml b/src/QmlControls/QGCCheckBox.qml index a737102dfaa77be06aab5cf5be3a661607638392..437fb0084024291d32c7ad6734dcc2a652d14f9e 100644 --- a/src/QmlControls/QGCCheckBox.qml +++ b/src/QmlControls/QGCCheckBox.qml @@ -11,7 +11,7 @@ CheckBox { style: CheckBoxStyle { label: Item { implicitWidth: text.implicitWidth + 2 - implicitHeight: ScreenTools.isMobile ? ScreenTools.defaultFontPixelHeight * 3 * 0.75 : text.implicitHeight + implicitHeight: text.implicitHeight baselineOffset: text.baselineOffset Rectangle { anchors.fill: text diff --git a/src/QmlControls/QGCRadioButton.qml b/src/QmlControls/QGCRadioButton.qml index 86b3e356aa601a4617cf6b2e498c2357f82668d8..1894bd93a7cfa49f2286a15751b21368c9b4584f 100644 --- a/src/QmlControls/QGCRadioButton.qml +++ b/src/QmlControls/QGCRadioButton.qml @@ -11,7 +11,7 @@ RadioButton { style: RadioButtonStyle { label: Item { implicitWidth: text.implicitWidth + 2 - implicitHeight: ScreenTools.isMobile ? ScreenTools.defaultFontPixelHeight * 3 * 0.75 : text.implicitHeight + implicitHeight: text.implicitHeight baselineOffset: text.y + text.baselineOffset Rectangle { anchors.fill: text