diff --git a/src/ui/preferences/GeneralSettings.qml b/src/ui/preferences/GeneralSettings.qml index 7a3212bea8489de490ea3777206350c05fc947fb..eeed52d10ce49654376b88202776e81e71426841 100644 --- a/src/ui/preferences/GeneralSettings.qml +++ b/src/ui/preferences/GeneralSettings.qml @@ -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,13 +73,306 @@ Rectangle { Item { id: outerItem - width: Math.max(_root.width, settingsColumn.width) + width: Math.max(_root.width, settingsColumn.width) height: settingsColumn.height ColumnLayout { id: settingsColumn 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") @@ -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 { } } - 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 { 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 { 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 { 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 { } } - 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 { } } - 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 { } } - 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 { } Item { width: 1; height: _margins } - QGCLabel { text: qsTr("%1 Version").arg(QGroundControl.appName) Layout.alignment: Qt.AlignHCenter