|
|
|
@ -38,23 +38,27 @@ Rectangle {
@@ -38,23 +38,27 @@ Rectangle {
|
|
|
|
|
property Fact _virtualJoystick: QGroundControl.settingsManager.appSettings.virtualJoystick |
|
|
|
|
property Fact _virtualJoystickAutoCenterThrottle: QGroundControl.settingsManager.appSettings.virtualJoystickAutoCenterThrottle |
|
|
|
|
|
|
|
|
|
property real _labelWidth: ScreenTools.defaultFontPixelWidth * 20 |
|
|
|
|
property real _comboFieldWidth: ScreenTools.defaultFontPixelWidth * 30 |
|
|
|
|
property real _valueFieldWidth: ScreenTools.defaultFontPixelWidth * 10 |
|
|
|
|
property real _labelWidth: ScreenTools.defaultFontPixelWidth * 20 |
|
|
|
|
property real _comboFieldWidth: ScreenTools.defaultFontPixelWidth * 30 |
|
|
|
|
property real _valueFieldWidth: ScreenTools.defaultFontPixelWidth * 10 |
|
|
|
|
property string _mapProvider: QGroundControl.settingsManager.flightMapSettings.mapProvider.value |
|
|
|
|
property string _mapType: QGroundControl.settingsManager.flightMapSettings.mapType.value |
|
|
|
|
property Fact _followTarget: QGroundControl.settingsManager.appSettings.followTarget |
|
|
|
|
property real _panelWidth: _root.width * _internalWidthRatio |
|
|
|
|
property real _margins: ScreenTools.defaultFontPixelWidth |
|
|
|
|
property var _planViewSettings: QGroundControl.settingsManager.planViewSettings |
|
|
|
|
|
|
|
|
|
property string _videoSource: QGroundControl.settingsManager.videoSettings.videoSource.value |
|
|
|
|
property Fact _followTarget: QGroundControl.settingsManager.appSettings.followTarget |
|
|
|
|
property real _panelWidth: _root.width * _internalWidthRatio |
|
|
|
|
property real _margins: ScreenTools.defaultFontPixelWidth |
|
|
|
|
property var _planViewSettings: QGroundControl.settingsManager.planViewSettings |
|
|
|
|
property var _flyViewSettings: QGroundControl.settingsManager.flyViewSettings |
|
|
|
|
property var _videoSettings: QGroundControl.settingsManager.videoSettings |
|
|
|
|
property string _videoSource: _videoSettings.videoSource.value |
|
|
|
|
property bool _isGst: QGroundControl.videoManager.isGStreamer |
|
|
|
|
property bool _isUDP264: _isGst && _videoSource === QGroundControl.settingsManager.videoSettings.udp264VideoSource |
|
|
|
|
property bool _isUDP265: _isGst && _videoSource === QGroundControl.settingsManager.videoSettings.udp265VideoSource |
|
|
|
|
property bool _isRTSP: _isGst && _videoSource === QGroundControl.settingsManager.videoSettings.rtspVideoSource |
|
|
|
|
property bool _isTCP: _isGst && _videoSource === QGroundControl.settingsManager.videoSettings.tcpVideoSource |
|
|
|
|
property bool _isMPEGTS: _isGst && _videoSource === QGroundControl.settingsManager.videoSettings.mpegtsVideoSource |
|
|
|
|
property bool _isUDP264: _isGst && _videoSource === _videoSettings.udp264VideoSource |
|
|
|
|
property bool _isUDP265: _isGst && _videoSource === _videoSettings.udp265VideoSource |
|
|
|
|
property bool _isRTSP: _isGst && _videoSource === _videoSettings.rtspVideoSource |
|
|
|
|
property bool _isTCP: _isGst && _videoSource === _videoSettings.tcpVideoSource |
|
|
|
|
property bool _isMPEGTS: _isGst && _videoSource === _videoSettings.mpegtsVideoSource |
|
|
|
|
property bool _videoAutoStreamConfig: QGroundControl.videoManager.autoStreamConfigured |
|
|
|
|
property bool _showSaveVideoSettings: _isGst || _videoAutoStreamConfig |
|
|
|
|
property bool _disableAllDataPersistence: QGroundControl.settingsManager.appSettings.disableAllPersistence.rawValue |
|
|
|
|
|
|
|
|
|
property string gpsDisabled: "Disabled" |
|
|
|
|
property string gpsUdpPort: "UDP Port" |
|
|
|
@ -69,7 +73,7 @@ Rectangle {
@@ -69,7 +73,7 @@ Rectangle {
|
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
id: outerItem |
|
|
|
|
width: Math.max(_root.width, settingsColumn.width) |
|
|
|
|
width: Math.max(_root.width, settingsColumn.width) |
|
|
|
|
height: settingsColumn.height |
|
|
|
|
|
|
|
|
|
ColumnLayout { |
|
|
|
@ -77,6 +81,299 @@ Rectangle {
@@ -77,6 +81,299 @@ Rectangle {
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: flyViewSectionLabel |
|
|
|
|
text: qsTr("Fly View") |
|
|
|
|
visible: QGroundControl.settingsManager.flyViewSettings.visible |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredHeight: flyViewCol.height + (_margins * 2) |
|
|
|
|
Layout.preferredWidth: flyViewCol.width + (_margins * 2) |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
visible: flyViewSectionLabel.visible |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
|
|
|
|
|
ColumnLayout { |
|
|
|
|
id: flyViewCol |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
spacing: _margins |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
id: useCheckList |
|
|
|
|
text: qsTr("Use Preflight Checklist") |
|
|
|
|
fact: _useChecklist |
|
|
|
|
visible: _useChecklist.visible && QGroundControl.corePlugin.options.preFlightChecklistUrl.toString().length |
|
|
|
|
|
|
|
|
|
property Fact _useChecklist: QGroundControl.settingsManager.appSettings.useChecklist |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Enforce Preflight Checklist") |
|
|
|
|
fact: _enforceChecklist |
|
|
|
|
enabled: QGroundControl.settingsManager.appSettings.useChecklist.value |
|
|
|
|
visible: useCheckList.visible && _enforceChecklist.visible && QGroundControl.corePlugin.options.preFlightChecklistUrl.toString().length |
|
|
|
|
|
|
|
|
|
property Fact _enforceChecklist: QGroundControl.settingsManager.appSettings.enforceChecklist |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Keep Map Centered On Vehicle") |
|
|
|
|
fact: _keepMapCenteredOnVehicle |
|
|
|
|
visible: _keepMapCenteredOnVehicle.visible |
|
|
|
|
|
|
|
|
|
property Fact _keepMapCenteredOnVehicle: QGroundControl.settingsManager.flyViewSettings.keepMapCenteredOnVehicle |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Show Telemetry Log Replay Status Bar") |
|
|
|
|
fact: _showLogReplayStatusBar |
|
|
|
|
visible: _showLogReplayStatusBar.visible |
|
|
|
|
|
|
|
|
|
property Fact _showLogReplayStatusBar: QGroundControl.settingsManager.flyViewSettings.showLogReplayStatusBar |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
RowLayout { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Virtual Joystick") |
|
|
|
|
visible: _virtualJoystick.visible |
|
|
|
|
fact: _virtualJoystick |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Auto-Center Throttle") |
|
|
|
|
visible: _virtualJoystickAutoCenterThrottle.visible |
|
|
|
|
enabled: _virtualJoystick.rawValue |
|
|
|
|
fact: _virtualJoystickAutoCenterThrottle |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Use Vertical Instrument Panel") |
|
|
|
|
visible: _alternateInstrumentPanel.visible |
|
|
|
|
fact: _alternateInstrumentPanel |
|
|
|
|
|
|
|
|
|
property Fact _alternateInstrumentPanel: QGroundControl.settingsManager.flyViewSettings.alternateInstrumentPanel |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Show additional heading indicators on Compass") |
|
|
|
|
visible: _showAdditionalIndicatorsCompass.visible |
|
|
|
|
fact: _showAdditionalIndicatorsCompass |
|
|
|
|
|
|
|
|
|
property Fact _showAdditionalIndicatorsCompass: QGroundControl.settingsManager.flyViewSettings.showAdditionalIndicatorsCompass |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Lock Compass Nose-Up") |
|
|
|
|
visible: _lockNoseUpCompass.visible |
|
|
|
|
fact: _lockNoseUpCompass |
|
|
|
|
|
|
|
|
|
property Fact _lockNoseUpCompass: QGroundControl.settingsManager.flyViewSettings.lockNoseUpCompass |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GridLayout { |
|
|
|
|
columns: 2 |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Guided Command Settings") |
|
|
|
|
Layout.columnSpan: 2 |
|
|
|
|
Layout.alignment: Qt.AlignHCenter |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Minimum Altitude") |
|
|
|
|
visible: guidedMinAltField.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
id: guidedMinAltField |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
visible: fact.visible |
|
|
|
|
fact: _flyViewSettings.guidedMinimumAltitude |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Maximum Altitude") |
|
|
|
|
visible: guidedMaxAltField.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
id: guidedMaxAltField |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
visible: fact.visible |
|
|
|
|
fact: _flyViewSettings.guidedMaximumAltitude |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Go To Location Max Distance") |
|
|
|
|
visible: maxGotoDistanceField.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
id: maxGotoDistanceField |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
visible: fact.visible |
|
|
|
|
fact: _flyViewSettings.maxGoToLocationDistance |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GridLayout { |
|
|
|
|
id: videoGrid |
|
|
|
|
columns: 2 |
|
|
|
|
visible: _videoSettings.visible |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Video Settings") |
|
|
|
|
Layout.columnSpan: 2 |
|
|
|
|
Layout.alignment: Qt.AlignHCenter |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: videoSourceLabel |
|
|
|
|
text: qsTr("Source") |
|
|
|
|
visible: !_videoAutoStreamConfig && _videoSettings.videoSource.visible |
|
|
|
|
} |
|
|
|
|
FactComboBox { |
|
|
|
|
id: videoSource |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
indexModel: false |
|
|
|
|
fact: _videoSettings.videoSource |
|
|
|
|
visible: videoSourceLabel.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: udpPortLabel |
|
|
|
|
text: qsTr("UDP Port") |
|
|
|
|
visible: !_videoAutoStreamConfig && (_isUDP264 || _isUDP265 || _isMPEGTS) && _videoSettings.udpPort.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: _videoSettings.udpPort |
|
|
|
|
visible: udpPortLabel.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: rtspUrlLabel |
|
|
|
|
text: qsTr("RTSP URL") |
|
|
|
|
visible: !_videoAutoStreamConfig && _isRTSP && _videoSettings.rtspUrl.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: _videoSettings.rtspUrl |
|
|
|
|
visible: rtspUrlLabel.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: tcpUrlLabel |
|
|
|
|
text: qsTr("TCP URL") |
|
|
|
|
visible: !_videoAutoStreamConfig && _isTCP && _videoSettings.tcpUrl.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: _videoSettings.tcpUrl |
|
|
|
|
visible: tcpUrlLabel.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Aspect Ratio") |
|
|
|
|
visible: !_videoAutoStreamConfig && _isGst && _videoSettings.aspectRatio.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: _videoSettings.aspectRatio |
|
|
|
|
visible: !_videoAutoStreamConfig && _isGst && _videoSettings.aspectRatio.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: videoFileFormatLabel |
|
|
|
|
text: qsTr("File Format") |
|
|
|
|
visible: _showSaveVideoSettings && _videoSettings.recordingFormat.visible |
|
|
|
|
} |
|
|
|
|
FactComboBox { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: _videoSettings.recordingFormat |
|
|
|
|
visible: videoFileFormatLabel.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: maxSavedVideoStorageLabel |
|
|
|
|
text: qsTr("Max Storage Usage") |
|
|
|
|
visible: _showSaveVideoSettings && _videoSettings.maxVideoSize.visible && _videoSettings.enableStorageLimit.value |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: _videoSettings.maxVideoSize |
|
|
|
|
visible: _showSaveVideoSettings && _videoSettings.enableStorageLimit.value && maxSavedVideoStorageLabel.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: 1} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Disable When Disarmed") |
|
|
|
|
fact: _videoSettings.disableWhenDisarmed |
|
|
|
|
visible: !_videoAutoStreamConfig && _isGst && fact.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: 1} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Low Latency Mode") |
|
|
|
|
fact: _videoSettings.lowLatencyMode |
|
|
|
|
visible: !_videoAutoStreamConfig && _isGst && fact.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: 1} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Auto-Delete Saved Recordings") |
|
|
|
|
fact: _videoSettings.enableStorageLimit |
|
|
|
|
visible: _showSaveVideoSettings && fact.visible |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: planViewSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: planViewSectionLabel |
|
|
|
|
text: qsTr("Plan View") |
|
|
|
|
visible: _planViewSettings.visible |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredHeight: planViewCol.height + (_margins * 2) |
|
|
|
|
Layout.preferredWidth: planViewCol.width + (_margins * 2) |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
visible: planViewSectionLabel.visible |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
|
|
|
|
|
ColumnLayout { |
|
|
|
|
id: planViewCol |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
spacing: _margins |
|
|
|
|
|
|
|
|
|
RowLayout { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
visible: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude.visible |
|
|
|
|
|
|
|
|
|
QGCLabel { text: qsTr("Default Mission Altitude") } |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Use MAV_CMD_CONDITION_GATE for pattern generation") |
|
|
|
|
fact: QGroundControl.settingsManager.planViewSettings.useConditionGate |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Missions Do Not Require Takeoff Item") |
|
|
|
|
fact: _planViewSettings.takeoffItemNotRequired |
|
|
|
|
visible: _planViewSettings.takeoffItemNotRequired.visible |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: unitsSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: unitsSectionLabel |
|
|
|
|
text: qsTr("Units") |
|
|
|
|
visible: QGroundControl.settingsManager.unitsSettings.visible |
|
|
|
@ -112,8 +409,7 @@ Rectangle {
@@ -112,8 +409,7 @@ Rectangle {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: miscSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: miscSectionLabel |
|
|
|
|
text: qsTr("Miscellaneous") |
|
|
|
@ -376,40 +672,9 @@ Rectangle {
@@ -376,40 +672,9 @@ Rectangle {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: loggingSectionLabel |
|
|
|
|
text: qsTr("Data Persistence") |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredHeight: dataPersistCol.height + (_margins * 2) |
|
|
|
|
Layout.preferredWidth: dataPersistCol.width + (_margins * 2) |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
ColumnLayout { |
|
|
|
|
id: dataPersistCol |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
spacing: _margins * 1.5 |
|
|
|
|
FactCheckBox { |
|
|
|
|
id: disableDataPersistence |
|
|
|
|
text: qsTr("Disable all data persistence") |
|
|
|
|
fact: _disableDataPersistence |
|
|
|
|
visible: _disableDataPersistence.visible |
|
|
|
|
property Fact _disableDataPersistence: QGroundControl.settingsManager.appSettings.disableAllPersistence |
|
|
|
|
} |
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("When Data Persistence is disabled, all telemetry logging and map tile caching is disabled and not written to disk.") |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
font.pointSize: ScreenTools.smallFontPointSize |
|
|
|
|
Layout.maximumWidth: logIfNotArmed.visible ? logIfNotArmed.width : disableDataPersistence.width * 1.5 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
Item { width: 1; height: _margins; visible: telemetryLogSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: telemetryLogSectionLabel |
|
|
|
|
text: qsTr("Telemetry Logs from Vehicle") |
|
|
|
|
visible: telemetryRect.visible |
|
|
|
|
} |
|
|
|
@ -431,7 +696,7 @@ Rectangle {
@@ -431,7 +696,7 @@ Rectangle {
|
|
|
|
|
text: qsTr("Save log after each flight") |
|
|
|
|
fact: _telemetrySave |
|
|
|
|
visible: _telemetrySave.visible |
|
|
|
|
enabled: !disableDataPersistence.checked |
|
|
|
|
enabled: !_disableAllDataPersistence |
|
|
|
|
property Fact _telemetrySave: QGroundControl.settingsManager.appSettings.telemetrySave |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
@ -439,7 +704,7 @@ Rectangle {
@@ -439,7 +704,7 @@ Rectangle {
|
|
|
|
|
text: qsTr("Save logs even if vehicle was not armed") |
|
|
|
|
fact: _telemetrySaveNotArmed |
|
|
|
|
visible: _telemetrySaveNotArmed.visible |
|
|
|
|
enabled: promptSaveLog.checked && !disableDataPersistence.checked |
|
|
|
|
enabled: promptSaveLog.checked && !_disableAllDataPersistence |
|
|
|
|
property Fact _telemetrySaveNotArmed: QGroundControl.settingsManager.appSettings.telemetrySaveNotArmed |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
@ -447,193 +712,13 @@ Rectangle {
@@ -447,193 +712,13 @@ Rectangle {
|
|
|
|
|
text: qsTr("Save CSV log of telemetry data") |
|
|
|
|
fact: _saveCsvTelemetry |
|
|
|
|
visible: _saveCsvTelemetry.visible |
|
|
|
|
enabled: !disableDataPersistence.checked |
|
|
|
|
enabled: !_disableAllDataPersistence |
|
|
|
|
property Fact _saveCsvTelemetry: QGroundControl.settingsManager.appSettings.saveCsvTelemetry |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: flyViewSectionLabel |
|
|
|
|
text: qsTr("Fly View") |
|
|
|
|
visible: QGroundControl.settingsManager.flyViewSettings.visible |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredHeight: flyViewCol.height + (_margins * 2) |
|
|
|
|
Layout.preferredWidth: flyViewCol.width + (_margins * 2) |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
visible: flyViewSectionLabel.visible |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
|
|
|
|
|
ColumnLayout { |
|
|
|
|
id: flyViewCol |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
spacing: _margins |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
id: useCheckList |
|
|
|
|
text: qsTr("Use Preflight Checklist") |
|
|
|
|
fact: _useChecklist |
|
|
|
|
visible: _useChecklist.visible && QGroundControl.corePlugin.options.preFlightChecklistUrl.toString().length |
|
|
|
|
|
|
|
|
|
property Fact _useChecklist: QGroundControl.settingsManager.appSettings.useChecklist |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Enforce Preflight Checklist") |
|
|
|
|
fact: _enforceChecklist |
|
|
|
|
enabled: QGroundControl.settingsManager.appSettings.useChecklist.value |
|
|
|
|
visible: useCheckList.visible && _enforceChecklist.visible && QGroundControl.corePlugin.options.preFlightChecklistUrl.toString().length |
|
|
|
|
|
|
|
|
|
property Fact _enforceChecklist: QGroundControl.settingsManager.appSettings.enforceChecklist |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Keep Map Centered On Vehicle") |
|
|
|
|
fact: _keepMapCenteredOnVehicle |
|
|
|
|
visible: _keepMapCenteredOnVehicle.visible |
|
|
|
|
|
|
|
|
|
property Fact _keepMapCenteredOnVehicle: QGroundControl.settingsManager.flyViewSettings.keepMapCenteredOnVehicle |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Show Telemetry Log Replay Status Bar") |
|
|
|
|
fact: _showLogReplayStatusBar |
|
|
|
|
visible: _showLogReplayStatusBar.visible |
|
|
|
|
|
|
|
|
|
property Fact _showLogReplayStatusBar: QGroundControl.settingsManager.flyViewSettings.showLogReplayStatusBar |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
RowLayout { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Virtual Joystick") |
|
|
|
|
visible: _virtualJoystick.visible |
|
|
|
|
fact: _virtualJoystick |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Auto-Center Throttle") |
|
|
|
|
visible: _virtualJoystickAutoCenterThrottle.visible |
|
|
|
|
enabled: _virtualJoystick.rawValue |
|
|
|
|
fact: _virtualJoystickAutoCenterThrottle |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Use Vertical Instrument Panel") |
|
|
|
|
visible: _alternateInstrumentPanel.visible |
|
|
|
|
fact: _alternateInstrumentPanel |
|
|
|
|
|
|
|
|
|
property Fact _alternateInstrumentPanel: QGroundControl.settingsManager.flyViewSettings.alternateInstrumentPanel |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Show additional heading indicators on Compass") |
|
|
|
|
visible: _showAdditionalIndicatorsCompass.visible |
|
|
|
|
fact: _showAdditionalIndicatorsCompass |
|
|
|
|
|
|
|
|
|
property Fact _showAdditionalIndicatorsCompass: QGroundControl.settingsManager.flyViewSettings.showAdditionalIndicatorsCompass |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Lock Compass Nose-Up") |
|
|
|
|
visible: _lockNoseUpCompass.visible |
|
|
|
|
fact: _lockNoseUpCompass |
|
|
|
|
|
|
|
|
|
property Fact _lockNoseUpCompass: QGroundControl.settingsManager.flyViewSettings.lockNoseUpCompass |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GridLayout { |
|
|
|
|
columns: 2 |
|
|
|
|
|
|
|
|
|
property Fact _guidedMinimumAltitude: QGroundControl.settingsManager.flyViewSettings.guidedMinimumAltitude |
|
|
|
|
property Fact _guidedMaximumAltitude: QGroundControl.settingsManager.flyViewSettings.guidedMaximumAltitude |
|
|
|
|
property Fact _maxGoToLocationDistance: QGroundControl.settingsManager.flyViewSettings.maxGoToLocationDistance |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Guided Minimum Altitude") |
|
|
|
|
visible: parent._guidedMinimumAltitude.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
visible: parent._guidedMinimumAltitude.visible |
|
|
|
|
fact: parent._guidedMinimumAltitude |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Guided Maximum Altitude") |
|
|
|
|
visible: parent._guidedMaximumAltitude.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
visible: parent._guidedMaximumAltitude.visible |
|
|
|
|
fact: parent._guidedMaximumAltitude |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Go To Location Max Distance") |
|
|
|
|
visible: parent._maxGoToLocationDistance.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
visible: parent._maxGoToLocationDistance.visible |
|
|
|
|
fact: parent._maxGoToLocationDistance |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: planViewSectionLabel |
|
|
|
|
text: qsTr("Plan View") |
|
|
|
|
visible: _planViewSettings.visible |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredHeight: planViewCol.height + (_margins * 2) |
|
|
|
|
Layout.preferredWidth: planViewCol.width + (_margins * 2) |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
visible: planViewSectionLabel.visible |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
|
|
|
|
|
ColumnLayout { |
|
|
|
|
id: planViewCol |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
spacing: _margins |
|
|
|
|
|
|
|
|
|
RowLayout { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
visible: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude.visible |
|
|
|
|
|
|
|
|
|
QGCLabel { text: qsTr("Default Mission Altitude") } |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _valueFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Use MAV_CMD_CONDITION_GATE for pattern generation") |
|
|
|
|
fact: QGroundControl.settingsManager.planViewSettings.useConditionGate |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactCheckBox { |
|
|
|
|
text: qsTr("Missions Do Not Require Takeoff Item") |
|
|
|
|
fact: _planViewSettings.takeoffItemNotRequired |
|
|
|
|
visible: _planViewSettings.takeoffItemNotRequired.visible |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: autoConnectSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: autoConnectSectionLabel |
|
|
|
|
text: qsTr("AutoConnect to the following devices") |
|
|
|
@ -748,8 +833,7 @@ Rectangle {
@@ -748,8 +833,7 @@ Rectangle {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: rtkSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: rtkSectionLabel |
|
|
|
|
text: qsTr("RTK GPS") |
|
|
|
@ -883,8 +967,7 @@ Rectangle {
@@ -883,8 +967,7 @@ Rectangle {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: adsbSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: adsbSectionLabel |
|
|
|
|
text: qsTr("ADSB Server") |
|
|
|
@ -947,157 +1030,7 @@ Rectangle {
@@ -947,157 +1030,7 @@ Rectangle {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: videoSectionLabel |
|
|
|
|
text: qsTr("Video") |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.visible && !QGroundControl.videoManager.autoStreamConfigured |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredWidth: videoGrid.width + (_margins * 2) |
|
|
|
|
Layout.preferredHeight: videoGrid.height + (_margins * 2) |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
visible: videoSectionLabel.visible |
|
|
|
|
|
|
|
|
|
GridLayout { |
|
|
|
|
id: videoGrid |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
Layout.fillWidth: false |
|
|
|
|
Layout.fillHeight: false |
|
|
|
|
columns: 2 |
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Video Source") |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.videoSource.visible |
|
|
|
|
} |
|
|
|
|
FactComboBox { |
|
|
|
|
id: videoSource |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
indexModel: false |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.videoSource |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.videoSource.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("UDP Port") |
|
|
|
|
visible: (_isUDP264 || _isUDP265 || _isMPEGTS) && QGroundControl.settingsManager.videoSettings.udpPort.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.udpPort |
|
|
|
|
visible: (_isUDP264 || _isUDP265 || _isMPEGTS) && QGroundControl.settingsManager.videoSettings.udpPort.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("RTSP URL") |
|
|
|
|
visible: _isRTSP && QGroundControl.settingsManager.videoSettings.rtspUrl.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.rtspUrl |
|
|
|
|
visible: _isRTSP && QGroundControl.settingsManager.videoSettings.rtspUrl.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("TCP URL") |
|
|
|
|
visible: _isTCP && QGroundControl.settingsManager.videoSettings.tcpUrl.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.tcpUrl |
|
|
|
|
visible: _isTCP && QGroundControl.settingsManager.videoSettings.tcpUrl.visible |
|
|
|
|
} |
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Aspect Ratio") |
|
|
|
|
visible: _isGst && QGroundControl.settingsManager.videoSettings.aspectRatio.visible |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.aspectRatio |
|
|
|
|
visible: _isGst && QGroundControl.settingsManager.videoSettings.aspectRatio.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Disable When Disarmed") |
|
|
|
|
visible: _isGst && QGroundControl.settingsManager.videoSettings.disableWhenDisarmed.visible |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: "" |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.disableWhenDisarmed |
|
|
|
|
visible: _isGst && QGroundControl.settingsManager.videoSettings.disableWhenDisarmed.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Low Latency Mode") |
|
|
|
|
visible: _isGst && QGroundControl.settingsManager.videoSettings.lowLatencyMode.visible |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: "" |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.lowLatencyMode |
|
|
|
|
visible: _isGst && QGroundControl.settingsManager.videoSettings.lowLatencyMode.visible |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: videoRecSectionLabel |
|
|
|
|
text: qsTr("Video Recording") |
|
|
|
|
visible: (QGroundControl.settingsManager.videoSettings.visible && _isGst) || QGroundControl.videoManager.autoStreamConfigured |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
Layout.preferredWidth: videoRecCol.width + (_margins * 2) |
|
|
|
|
Layout.preferredHeight: videoRecCol.height + (_margins * 2) |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
color: qgcPal.windowShade |
|
|
|
|
visible: videoRecSectionLabel.visible |
|
|
|
|
|
|
|
|
|
GridLayout { |
|
|
|
|
id: videoRecCol |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter |
|
|
|
|
Layout.fillWidth: false |
|
|
|
|
columns: 2 |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Auto-Delete Files") |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible |
|
|
|
|
} |
|
|
|
|
FactCheckBox { |
|
|
|
|
text: "" |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.enableStorageLimit |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Max Storage Usage") |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value |
|
|
|
|
} |
|
|
|
|
FactTextField { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.maxVideoSize |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("Video File Format") |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.recordingFormat.visible |
|
|
|
|
} |
|
|
|
|
FactComboBox { |
|
|
|
|
Layout.preferredWidth: _comboFieldWidth |
|
|
|
|
fact: QGroundControl.settingsManager.videoSettings.recordingFormat |
|
|
|
|
visible: QGroundControl.settingsManager.videoSettings.recordingFormat.visible |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: videoRecSectionLabel.visible } |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins; visible: brandImageSectionLabel.visible } |
|
|
|
|
QGCLabel { |
|
|
|
|
id: brandImageSectionLabel |
|
|
|
|
text: qsTr("Brand Image") |
|
|
|
@ -1174,7 +1107,6 @@ Rectangle {
@@ -1174,7 +1107,6 @@ Rectangle {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { width: 1; height: _margins } |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("%1 Version").arg(QGroundControl.appName) |
|
|
|
|
Layout.alignment: Qt.AlignHCenter |
|
|
|
|