Commit 48b6e1ef authored by DonLakeFlyer's avatar DonLakeFlyer

Settings page which works at any size

parent cbe81ce1
...@@ -72,8 +72,8 @@ ...@@ -72,8 +72,8 @@
"type": "double", "type": "double",
"defaultValue": 50.0, "defaultValue": 50.0,
"min": 0.0, "min": 0.0,
"units": "meters", "units": "m",
"decimalPlaces": 2 "decimalPlaces": 1
}, },
{ {
"name": "PromptFLightDataSave", "name": "PromptFLightDataSave",
......
...@@ -37,11 +37,13 @@ QGCView { ...@@ -37,11 +37,13 @@ QGCView {
property Fact _userBrandImageIndoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageIndoor property Fact _userBrandImageIndoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageIndoor
property Fact _userBrandImageOutdoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageOutdoor property Fact _userBrandImageOutdoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageOutdoor
property real _labelWidth: ScreenTools.defaultFontPixelWidth * 20 property real _labelWidth: ScreenTools.defaultFontPixelWidth * 20
property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 30 property real _comboFieldWidth: ScreenTools.defaultFontPixelWidth * 25
property real _valueFieldWidth: ScreenTools.defaultFontPixelWidth * 8
property Fact _mapProvider: QGroundControl.settingsManager.flightMapSettings.mapProvider property Fact _mapProvider: QGroundControl.settingsManager.flightMapSettings.mapProvider
property Fact _mapType: QGroundControl.settingsManager.flightMapSettings.mapType property Fact _mapType: QGroundControl.settingsManager.flightMapSettings.mapType
property Fact _followTarget: QGroundControl.settingsManager.appSettings.followTarget property Fact _followTarget: QGroundControl.settingsManager.appSettings.followTarget
property real _panelWidth: _qgcView.width * _internalWidthRatio property real _panelWidth: _qgcView.width * _internalWidthRatio
property real _margins: ScreenTools.defaultFontPixelWidth
readonly property real _internalWidthRatio: 0.8 readonly property real _internalWidthRatio: 0.8
...@@ -52,190 +54,118 @@ QGCView { ...@@ -52,190 +54,118 @@ QGCView {
QGCViewPanel { QGCViewPanel {
id: panel id: panel
anchors.fill: parent anchors.fill: parent
QGCFlickable { QGCFlickable {
clip: true clip: true
anchors.fill: parent anchors.fill: parent
contentHeight: settingsColumn.height contentHeight: outerItem.height
contentWidth: settingsColumn.width contentWidth: outerItem.width
Column {
id: settingsColumn
width: _qgcView.width
spacing: ScreenTools.defaultFontPixelHeight * 0.5
anchors.margins: ScreenTools.defaultFontPixelWidth
//-----------------------------------------------------------------
//-- Units
Item { Item {
width: _panelWidth id: outerItem
height: unitLabel.height width: Math.max(panel.width, settingsColumn.width)
anchors.margins: ScreenTools.defaultFontPixelWidth height: settingsColumn.height
ColumnLayout {
id: settingsColumn
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.unitsSettings.visible
QGCLabel { QGCLabel {
id: unitLabel id: unitsSectionLabel
text: qsTr("Units (Requires Restart)") text: qsTr("Units (Requires Restart)")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.unitsSettings.visible
}
} }
Rectangle { Rectangle {
height: unitsCol.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredHeight: unitsGrid.height + (_margins * 2)
width: _panelWidth Layout.preferredWidth: unitsGrid.width + (_margins * 2)
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: miscSectionLabel.visible
Layout.fillWidth: true
GridLayout {
id: unitsGrid
anchors.topMargin: _margins
anchors.top: parent.top
Layout.fillWidth: false
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.unitsSettings.visible flow: GridLayout.TopToBottom
Column { rows: 4
id: unitsCol
spacing: ScreenTools.defaultFontPixelWidth
anchors.centerIn: parent
Repeater { Repeater {
id: unitsRepeater model: [ qsTr("Distance"), qsTr("Area"), qsTr("Speed"), qsTr("Temperature") ]
model: [ QGroundControl.settingsManager.unitsSettings.distanceUnits, QGroundControl.settingsManager.unitsSettings.areaUnits, QGroundControl.settingsManager.unitsSettings.speedUnits, QGroundControl.settingsManager.unitsSettings.temperatureUnits ] QGCLabel { text: modelData }
property var names: [ qsTr("Distance:"), qsTr("Area:"), qsTr("Speed:"), qsTr("Temperature:") ]
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: modelData.visible
QGCLabel {
width: _labelWidth
anchors.baseline: factCombo.baseline
text: unitsRepeater.names[index]
} }
Repeater {
model: [ QGroundControl.settingsManager.unitsSettings.distanceUnits, QGroundControl.settingsManager.unitsSettings.areaUnits, QGroundControl.settingsManager.unitsSettings.speedUnits, QGroundControl.settingsManager.unitsSettings.temperatureUnits ]
FactComboBox { FactComboBox {
id: factCombo Layout.preferredWidth: _comboFieldWidth
width: _editFieldWidth
fact: modelData fact: modelData
indexModel: false indexModel: false
} }
} }
} }
} }
}
//----------------------------------------------------------------- Item { width: 1; height: _margins }
//-- Miscellaneous
Item {
width: _panelWidth
height: miscLabel.height
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.appSettings.visible
QGCLabel { QGCLabel {
id: miscLabel id: miscSectionLabel
text: qsTr("Miscellaneous") text: qsTr("Miscellaneous")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.appSettings.visible
}
} }
Rectangle { Rectangle {
height: miscCol.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredWidth: Math.max(comboGrid.width, miscCol.width) + (_margins * 2)
width: _panelWidth Layout.preferredHeight: (pathRow.visible ? pathRow.y + pathRow.height : miscColItem.y + miscColItem.height) + (_margins * 2)
Layout.fillWidth: true
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: miscSectionLabel.visible
Item {
id: comboGridItem
anchors.margins: _margins
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
height: comboGrid.height
GridLayout {
id: comboGrid
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.appSettings.visible columns: 2
Column {
id: miscCol
spacing: ScreenTools.defaultFontPixelWidth
anchors.centerIn: parent
//-----------------------------------------------------------------
//-- Base UI Font Point Size
Row {
visible: _appFontPointSize ? _appFontPointSize.visible : false
spacing: ScreenTools.defaultFontPixelWidth
QGCLabel {
id: baseFontLabel
text: qsTr("Font Size:")
anchors.verticalCenter: parent.verticalCenter
}
Row {
id: baseFontRow
spacing: ScreenTools.defaultFontPixelWidth / 2
anchors.verticalCenter: parent.verticalCenter
QGCButton {
id: decrementButton
width: height
height: baseFontEdit.height
text: "-"
onClicked: {
if (_appFontPointSize.value > _appFontPointSize.min) {
_appFontPointSize.value = _appFontPointSize.value - 1
}
}
}
FactTextField {
id: baseFontEdit
width: _editFieldWidth - (decrementButton.width * 2) - (baseFontRow.spacing * 2)
fact: QGroundControl.settingsManager.appSettings.appFontPointSize
}
QGCButton {
width: height
height: baseFontEdit.height
text: "+"
onClicked: {
if (_appFontPointSize.value < _appFontPointSize.max) {
_appFontPointSize.value = _appFontPointSize.value + 1
}
}
}
}
QGCLabel { QGCLabel {
anchors.verticalCenter: parent.verticalCenter text: qsTr("Color Scheme")
text: _requiresRestart
}
}
//-----------------------------------------------------------------
//-- Palette Styles
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.appSettings.indoorPalette.visible visible: QGroundControl.settingsManager.appSettings.indoorPalette.visible
QGCLabel {
text: qsTr("Color Scheme:")
width: _labelWidth
anchors.verticalCenter: parent.verticalCenter
} }
FactComboBox { FactComboBox {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.appSettings.indoorPalette fact: QGroundControl.settingsManager.appSettings.indoorPalette
indexModel: false indexModel: false
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.appSettings.indoorPalette.visible
}
} }
//-----------------------------------------------------------------
//-- Map Provider
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: _mapProvider.visible
QGCLabel { QGCLabel {
text: qsTr("Map Provider:") text: qsTr("Map Provider")
width: _labelWidth width: _labelWidth
anchors.verticalCenter: parent.verticalCenter visible: _mapProvider.visible
} }
FactComboBox { FactComboBox {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: _mapProvider fact: _mapProvider
indexModel: false indexModel: false
anchors.verticalCenter: parent.verticalCenter visible: _mapProvider.visible
}
} }
//-----------------------------------------------------------------
//-- Map Type
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: _mapType.visible
QGCLabel { QGCLabel {
text: qsTr("Map Type:") text: qsTr("Map Type")
width: _labelWidth visible: _mapType.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactComboBox { FactComboBox {
id: mapTypes id: mapTypes
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: _mapType fact: _mapType
indexModel: false indexModel: false
anchors.verticalCenter: parent.verticalCenter visible: _mapType.visible
Connections { Connections {
target: QGroundControl.settingsManager.flightMapSettings target: QGroundControl.settingsManager.flightMapSettings
onMapTypeChanged: { onMapTypeChanged: {
...@@ -243,34 +173,79 @@ QGCView { ...@@ -243,34 +173,79 @@ QGCView {
} }
} }
} }
}
//-----------------------------------------------------------------
//-- Follow Target
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: _followTarget.visible
QGCLabel { QGCLabel {
text: qsTr("Stream GCS Position:") text: qsTr("Stream GCS Position")
width: _labelWidth visible: _followTarget.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactComboBox { FactComboBox {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: _followTarget fact: _followTarget
indexModel: false indexModel: false
anchors.verticalCenter: parent.verticalCenter visible: _followTarget.visible
} }
} }
//----------------------------------------------------------------- }
//-- Audio preferences
Item {
id: miscColItem
anchors.margins: _margins
anchors.left: parent.left
anchors.right: parent.right
anchors.top: comboGridItem.bottom
height: miscCol.height
ColumnLayout {
id: miscCol
anchors.horizontalCenter: parent.horizontalCenter
spacing: _margins
RowLayout {
Layout.fillWidth: false
Layout.alignment: Qt.AlignHCenter
visible: _appFontPointSize ? _appFontPointSize.visible : false
QGCLabel {
text: qsTr("Font Size:")
}
QGCButton {
Layout.preferredWidth: height
Layout.preferredHeight: baseFontEdit.height
text: "-"
onClicked: {
if (_appFontPointSize.value > _appFontPointSize.min) {
_appFontPointSize.value = _appFontPointSize.value - 1
}
}
}
FactTextField {
id: baseFontEdit
Layout.preferredWidth: _valueFieldWidth
fact: QGroundControl.settingsManager.appSettings.appFontPointSize
}
QGCButton {
Layout.preferredWidth: height
Layout.preferredHeight: baseFontEdit.height
text: "+"
onClicked: {
if (_appFontPointSize.value < _appFontPointSize.max) {
_appFontPointSize.value = _appFontPointSize.value + 1
}
}
}
QGCLabel {
text: _requiresRestart
}
}
FactCheckBox { FactCheckBox {
text: qsTr("Mute all audio output") text: qsTr("Mute all audio output")
fact: _audioMuted fact: _audioMuted
visible: _audioMuted.visible visible: _audioMuted.visible
property Fact _audioMuted: QGroundControl.settingsManager.appSettings.audioMuted property Fact _audioMuted: QGroundControl.settingsManager.appSettings.audioMuted
} }
//-----------------------------------------------------------------
//-- Save telemetry log
FactCheckBox { FactCheckBox {
id: promptSaveLog id: promptSaveLog
text: qsTr("Save telemetry log after each flight") text: qsTr("Save telemetry log after each flight")
...@@ -278,8 +253,7 @@ QGCView { ...@@ -278,8 +253,7 @@ QGCView {
visible: _telemetrySave.visible visible: _telemetrySave.visible
property Fact _telemetrySave: QGroundControl.settingsManager.appSettings.telemetrySave property Fact _telemetrySave: QGroundControl.settingsManager.appSettings.telemetrySave
} }
//-----------------------------------------------------------------
//-- Save even if not armed
FactCheckBox { FactCheckBox {
text: qsTr("Save telemetry log even if vehicle was not armed") text: qsTr("Save telemetry log even if vehicle was not armed")
fact: _telemetrySaveNotArmed fact: _telemetrySaveNotArmed
...@@ -287,8 +261,31 @@ QGCView { ...@@ -287,8 +261,31 @@ QGCView {
enabled: promptSaveLog.checked enabled: promptSaveLog.checked
property Fact _telemetrySaveNotArmed: QGroundControl.settingsManager.appSettings.telemetrySaveNotArmed property Fact _telemetrySaveNotArmed: QGroundControl.settingsManager.appSettings.telemetrySaveNotArmed
} }
//-----------------------------------------------------------------
//-- Clear settings FactCheckBox {
text: qsTr("Use preflight checklist")
fact: _useChecklist
visible: _useChecklist.visible
property Fact _useChecklist: QGroundControl.settingsManager.appSettings.useChecklist
}
FactCheckBox {
text: qsTr("Virtual Joystick")
visible: _virtualJoystick.visible
fact: _virtualJoystick
property Fact _virtualJoystick: QGroundControl.settingsManager.appSettings.virtualJoystick
}
FactCheckBox {
text: qsTr("AutoLoad Missions")
fact: _autoLoad
visible: _autoLoad.visible
property Fact _autoLoad: QGroundControl.settingsManager.appSettings.autoLoadMissions
}
QGCCheckBox { QGCCheckBox {
id: clearCheck id: clearCheck
text: qsTr("Clear all settings on next start") text: qsTr("Clear all settings on next start")
...@@ -313,17 +310,14 @@ QGCView { ...@@ -313,17 +310,14 @@ QGCView {
} }
} }
} }
//-----------------------------------------------------------------
//-- Battery talker RowLayout {
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.appSettings.batteryPercentRemainingAnnounce.visible visible: QGroundControl.settingsManager.appSettings.batteryPercentRemainingAnnounce.visible
QGCCheckBox { QGCCheckBox {
id: announcePercentCheckbox id: announcePercentCheckbox
text: qsTr("Announce battery lower than:") text: qsTr("Announce battery lower than")
checked: _percentRemainingAnnounce.value !== 0 checked: _percentRemainingAnnounce.value !== 0
width: (_labelWidth + _editFieldWidth) * 0.65
anchors.verticalCenter: parent.verticalCenter
onClicked: { onClicked: {
if (checked) { if (checked) {
_percentRemainingAnnounce.value = _percentRemainingAnnounce.defaultValueString _percentRemainingAnnounce.value = _percentRemainingAnnounce.defaultValueString
...@@ -333,75 +327,49 @@ QGCView { ...@@ -333,75 +327,49 @@ QGCView {
} }
} }
FactTextField { FactTextField {
id: announcePercent
fact: _percentRemainingAnnounce fact: _percentRemainingAnnounce
width: (_labelWidth + _editFieldWidth) * 0.35 Layout.preferredWidth: _valueFieldWidth
enabled: announcePercentCheckbox.checked enabled: announcePercentCheckbox.checked
anchors.verticalCenter: parent.verticalCenter
} }
} }
//-----------------------------------------------------------------
//-- Virtual joystick settings
FactCheckBox {
text: qsTr("Virtual Joystick")
visible: _virtualJoystick.visible
fact: _virtualJoystick
property Fact _virtualJoystick: QGroundControl.settingsManager.appSettings.virtualJoystick RowLayout {
}
//-----------------------------------------------------------------
//-- Default mission item altitude
Row {
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude.visible visible: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude.visible
QGCLabel {
anchors.verticalCenter: parent.verticalCenter QGCLabel { text: qsTr("Default Mission Altitude") }
width: (_labelWidth + _editFieldWidth) * 0.65
text: qsTr("Default Mission Altitude:")
}
FactTextField { FactTextField {
id: defaultItemAltitudeField Layout.preferredWidth: _valueFieldWidth
width: (_labelWidth + _editFieldWidth) * 0.35
fact: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude fact: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude
anchors.verticalCenter: parent.verticalCenter
} }
} }
}
//-----------------------------------------------------------------
//-- Mission AutoLoad
FactCheckBox {
text: qsTr("AutoLoad Missions")
fact: _autoLoad
visible: _autoLoad.visible
property Fact _autoLoad: QGroundControl.settingsManager.appSettings.autoLoadMissions
} }
//----------------------------------------------------------------- //-----------------------------------------------------------------
//-- Save path //-- Save path
RowLayout { RowLayout {
spacing: ScreenTools.defaultFontPixelWidth id: pathRow
anchors.margins: _margins
anchors.left: parent.left
anchors.right: parent.right
anchors.top: miscColItem.bottom
visible: _savePath.visible && !ScreenTools.isMobile visible: _savePath.visible && !ScreenTools.isMobile
QGCLabel { QGCLabel { text: qsTr("Application Load/Save Path") }
Layout.alignment: Qt.AlignVCenter QGCTextField {
text: qsTr("File Save Path:") Layout.fillWidth: true
} readOnly: true
QGCLabel {
Layout.alignment: Qt.AlignVCenter
Layout.maximumWidth: _panelWidth * 0.5
elide: Text.ElideMiddle
text: _savePath.rawValue === "" ? qsTr("<not set>") : _savePath.value text: _savePath.rawValue === "" ? qsTr("<not set>") : _savePath.value
} }
QGCButton { QGCButton {
id: savePathBrowse text: qsTr("Browse")
text: "Browse"
onClicked: savePathBrowseDialog.openForLoad() onClicked: savePathBrowseDialog.openForLoad()
QGCFileDialog { QGCFileDialog {
id: savePathBrowseDialog id: savePathBrowseDialog
qgcView: _qgcView qgcView: _qgcView
title: qsTr("Choose the location to save files:") title: qsTr("Choose the location to save/load files")
folder: _savePath.rawValue folder: _savePath.rawValue
selectExisting: true selectExisting: true
selectFolder: true selectFolder: true
...@@ -410,92 +378,67 @@ QGCView { ...@@ -410,92 +378,67 @@ QGCView {
} }
} }
} }
//-----------------------------------------------------------------
//-- Checklist Settings
FactCheckBox {
text: qsTr("Use preflight checklist")
fact: _useChecklist
visible: _useChecklist.visible
property Fact _useChecklist: QGroundControl.settingsManager.appSettings.useChecklist
}
}
} }
//----------------------------------------------------------------- Item { width: 1; height: _margins }
//-- RTK GPS
Item {
width: _panelWidth
height: unitLabel.height
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.rtkSettings.visible
QGCLabel { QGCLabel {
id: rtkLabel id: rtkSectionLabel
text: qsTr("RTK GPS (Requires Restart)") text: qsTr("RTK GPS (Requires Restart)")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.rtkSettings.visible
}
} }
Rectangle { Rectangle {
height: rtkGrid.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredHeight: rtkGrid.height + (_margins * 2)
width: _panelWidth Layout.preferredWidth: rtkGrid.width + (_margins * 2)
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: rtkSectionLabel.visible
anchors.horizontalCenter: parent.horizontalCenter Layout.fillWidth: true
visible: QGroundControl.settingsManager.rtkSettings.visible
GridLayout { GridLayout {
id: rtkGrid id: rtkGrid
anchors.centerIn: parent anchors.topMargin: _margins
anchors.top: parent.top
Layout.fillWidth: false
anchors.horizontalCenter: parent.horizontalCenter
columns: 2 columns: 2
rowSpacing: ScreenTools.defaultFontPixelWidth
columnSpacing: ScreenTools.defaultFontPixelWidth
QGCLabel { QGCLabel { text: qsTr("Survey in accuracy") }
text: qsTr("Survey in accuracy:")
}
FactTextField { FactTextField {
Layout.preferredWidth: _valueFieldWidth
fact: QGroundControl.settingsManager.rtkSettings.surveyInAccuracyLimit fact: QGroundControl.settingsManager.rtkSettings.surveyInAccuracyLimit
} }
QGCLabel { QGCLabel { text: qsTr("Minimum observation duration") }
text: qsTr("Minimum observation duration:")
}
FactTextField { FactTextField {
Layout.preferredWidth: _valueFieldWidth
fact: QGroundControl.settingsManager.rtkSettings.surveyInMinObservationDuration fact: QGroundControl.settingsManager.rtkSettings.surveyInMinObservationDuration
} }
} }
} }
//----------------------------------------------------------------- Item { width: 1; height: _margins }
//-- Autoconnect settings
Item {
width: _panelWidth
height: autoConnectLabel.height
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.autoConnectSettings.visible
QGCLabel { QGCLabel {
id: autoConnectLabel id: autoConnectSectionLabel
text: qsTr("AutoConnect to the following devices:") text: qsTr("AutoConnect to the following devices")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.autoConnectSettings.visible
}
} }
Rectangle { Rectangle {
height: autoConnectCol.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredWidth: autoConnectCol.width + (_margins * 2)
width: _panelWidth Layout.preferredHeight: autoConnectCol.height + (_margins * 2)
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: autoConnectSectionLabel.visible
anchors.horizontalCenter: parent.horizontalCenter Layout.fillWidth: true
visible: QGroundControl.settingsManager.autoConnectSettings.visible
Column { ColumnLayout {
id: autoConnectCol id: autoConnectCol
spacing: ScreenTools.defaultFontPixelWidth * 2 anchors.margins: _margins
anchors.centerIn: parent anchors.left: parent.left
anchors.top: parent.top
spacing: _margins
Row { RowLayout {
spacing: ScreenTools.defaultFontPixelWidth * 2 spacing: _margins
Repeater { Repeater {
id: autoConnectRepeater id: autoConnectRepeater
...@@ -517,22 +460,21 @@ QGCView { ...@@ -517,22 +460,21 @@ QGCView {
} }
} }
Row { GridLayout {
anchors.horizontalCenter: parent.horizontalCenter Layout.fillWidth: false
spacing: ScreenTools.defaultFontPixelWidth Layout.alignment: Qt.AlignHCenter
columns: 2
visible: !ScreenTools.isMobile visible: !ScreenTools.isMobile
&& QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaPort.visible && QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaPort.visible
&& QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.visible && QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.visible
QGCLabel { QGCLabel {
anchors.baseline: nmeaPortCombo.baseline text: qsTr("NMEA GPS Device")
text: qsTr("NMEA GPS Device:")
width: _labelWidth
} }
QGCComboBox { QGCComboBox {
id: nmeaPortCombo id: nmeaPortCombo
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
model: ListModel { model: ListModel {
ListElement { text: "disabled" } ListElement { text: "disabled" }
} }
...@@ -550,22 +492,13 @@ QGCView { ...@@ -550,22 +492,13 @@ QGCView {
nmeaPortCombo.currentIndex = index; nmeaPortCombo.currentIndex = index;
} }
} }
}
Row {
anchors.horizontalCenter: parent.horizontalCenter
spacing: ScreenTools.defaultFontPixelWidth
visible: !ScreenTools.isMobile
&& QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaPort.visible
&& QGroundControl.settingsManager.autoConnectSettings.autoConnectNmeaBaud.visible
QGCLabel { QGCLabel {
anchors.baseline: nmeaBaudCombo.baseline text: qsTr("NMEA GPS Baudrate")
text: qsTr("NMEA GPS Baudrate:")
width: _labelWidth
} }
QGCComboBox { QGCComboBox {
id: nmeaBaudCombo id: nmeaBaudCombo
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
model: [4800, 9600, 19200, 38400, 57600, 115200] model: [4800, 9600, 19200, 38400, 57600, 115200]
onActivated: { onActivated: {
...@@ -582,242 +515,186 @@ QGCView { ...@@ -582,242 +515,186 @@ QGCView {
} }
} }
//----------------------------------------------------------------- Item { width: 1; height: _margins }
//-- Video Source
Item {
width: _panelWidth
height: videoLabel.height
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.videoSettings.visible
QGCLabel { QGCLabel {
id: videoLabel id: videoSectionLabel
text: qsTr("Video") text: qsTr("Video")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.videoSettings.visible
}
} }
Rectangle { Rectangle {
height: videoCol.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredWidth: videoGrid.width + (_margins * 2)
width: _panelWidth Layout.preferredHeight: videoGrid.height + (_margins * 2)
Layout.fillWidth: true
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: videoSectionLabel.visible
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.videoSettings.visible
Column { GridLayout {
id: videoCol id: videoGrid
spacing: ScreenTools.defaultFontPixelWidth anchors.margins: _margins
anchors.centerIn: parent anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
Layout.fillWidth: false
Layout.fillHeight: false
columns: 2
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.videoSettings.videoSource.visible
QGCLabel { QGCLabel {
text: qsTr("Video Source:") text: qsTr("Video Source")
width: _labelWidth visible: QGroundControl.settingsManager.videoSettings.videoSource.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactComboBox { FactComboBox {
id: videoSource id: videoSource
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
indexModel: false indexModel: false
fact: QGroundControl.settingsManager.videoSettings.videoSource fact: QGroundControl.settingsManager.videoSettings.videoSource
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.videoSource.visible
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.videoSettings.udpPort.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 1
QGCLabel { QGCLabel {
text: qsTr("UDP Port:") text: qsTr("UDP Port")
width: _labelWidth visible: QGroundControl.settingsManager.videoSettings.udpPort.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 1
anchors.verticalCenter: parent.verticalCenter
} }
FactTextField { FactTextField {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.videoSettings.udpPort fact: QGroundControl.settingsManager.videoSettings.udpPort
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.udpPort.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 1
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.videoSettings.rtspUrl.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 2
QGCLabel { QGCLabel {
anchors.verticalCenter: parent.verticalCenter text: qsTr("RTSP URL")
text: qsTr("RTSP URL:") visible: QGroundControl.settingsManager.videoSettings.rtspUrl.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 2
width: _labelWidth
} }
FactTextField { FactTextField {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.videoSettings.rtspUrl fact: QGroundControl.settingsManager.videoSettings.rtspUrl
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.rtspUrl.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 2
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.settingsManager.videoSettings.tcpUrl.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 3
QGCLabel { QGCLabel {
text: qsTr("TCP URL:") text: qsTr("TCP URL")
width: _labelWidth visible: QGroundControl.settingsManager.videoSettings.tcpUrl.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 3
anchors.verticalCenter: parent.verticalCenter
} }
FactTextField { FactTextField {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.videoSettings.tcpUrl fact: QGroundControl.settingsManager.videoSettings.tcpUrl
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.tcpUrl.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex === 3
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 3 && QGroundControl.settingsManager.videoSettings.aspectRatio.visible
QGCLabel { QGCLabel {
text: qsTr("Aspect Ratio:") text: qsTr("Aspect Ratio")
width: _labelWidth visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 3 && QGroundControl.settingsManager.videoSettings.aspectRatio.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactTextField { FactTextField {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.videoSettings.aspectRatio fact: QGroundControl.settingsManager.videoSettings.aspectRatio
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 3 && QGroundControl.settingsManager.videoSettings.aspectRatio.visible
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 3 && QGroundControl.settingsManager.videoSettings.gridLines.visible
QGCLabel { QGCLabel {
text: qsTr("Disable When Disarmed:") text: qsTr("Disable When Disarmed")
width: _labelWidth visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 3 && QGroundControl.settingsManager.videoSettings.gridLines.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactCheckBox { FactCheckBox {
text: "" text: ""
fact: QGroundControl.settingsManager.videoSettings.disableWhenDisarmed fact: QGroundControl.settingsManager.videoSettings.disableWhenDisarmed
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 3 && QGroundControl.settingsManager.videoSettings.gridLines.visible
} }
} }
} }
} // Video Source - Rectangle
//----------------------------------------------------------------- Item { width: 1; height: _margins }
//-- Video Source
Item {
width: _panelWidth
height: videoRecLabel.height
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.videoSettings.visible
QGCLabel { QGCLabel {
id: videoRecLabel id: videoRecSectionLabel
text: qsTr("Video Recording") text: qsTr("Video Recording")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.videoSettings.visible && QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4
}
} }
Rectangle { Rectangle {
height: videoRecCol.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredWidth: videoRecCol.width + (_margins * 2)
width: _panelWidth Layout.preferredHeight: videoRecCol.height + (_margins * 2)
Layout.fillWidth: true
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: videoRecSectionLabel.visible
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.videoSettings.visible
Column { GridLayout {
id: videoRecCol id: videoRecCol
spacing: ScreenTools.defaultFontPixelWidth anchors.margins: _margins
anchors.centerIn: parent anchors.top: parent.top
Row { anchors.horizontalCenter: parent.horizontalCenter
spacing: ScreenTools.defaultFontPixelWidth Layout.fillWidth: false
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible columns: 2
QGCLabel { QGCLabel {
text: qsTr("Auto-Delete Files:") text: qsTr("Auto-Delete Files")
width: _labelWidth visible: QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactCheckBox { FactCheckBox {
text: "" text: ""
fact: QGroundControl.settingsManager.videoSettings.enableStorageLimit fact: QGroundControl.settingsManager.videoSettings.enableStorageLimit
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value
QGCLabel { QGCLabel {
text: qsTr("Max Storage Usage:") text: qsTr("Max Storage Usage")
width: _labelWidth visible: QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value
anchors.verticalCenter: parent.verticalCenter
} }
FactTextField { FactTextField {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.videoSettings.maxVideoSize fact: QGroundControl.settingsManager.videoSettings.maxVideoSize
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value
}
} }
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.recordingFormat.visible
QGCLabel { QGCLabel {
text: qsTr("Video File Format:") text: qsTr("Video File Format")
width: _labelWidth visible: QGroundControl.settingsManager.videoSettings.recordingFormat.visible
anchors.verticalCenter: parent.verticalCenter
} }
FactComboBox { FactComboBox {
width: _editFieldWidth Layout.preferredWidth: _comboFieldWidth
fact: QGroundControl.settingsManager.videoSettings.recordingFormat fact: QGroundControl.settingsManager.videoSettings.recordingFormat
anchors.verticalCenter: parent.verticalCenter visible: QGroundControl.settingsManager.videoSettings.recordingFormat.visible
}
} }
} }
} }
//----------------------------------------------------------------- Item { width: 1; height: _margins; visible: videoRecSectionLabel.visible }
//-- Custom Brand Image
Item {
width: _panelWidth
height: userBrandImageLabel.height
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.brandImageSettings.visible && !ScreenTools.isMobile
QGCLabel { QGCLabel {
id: userBrandImageLabel id: brandImageSectionLabel
text: qsTr("Brand Image") text: qsTr("Brand Image")
font.family: ScreenTools.demiboldFontFamily visible: QGroundControl.settingsManager.brandImageSettings.visible && !ScreenTools.isMobile
}
} }
Rectangle { Rectangle {
height: userBrandImageCol.height + (ScreenTools.defaultFontPixelHeight * 2) Layout.preferredWidth: brandImageGrid.width + (_margins * 2)
width: _panelWidth Layout.preferredHeight: brandImageGrid.height + (_margins * 2)
Layout.fillWidth: true
color: qgcPal.windowShade color: qgcPal.windowShade
anchors.margins: ScreenTools.defaultFontPixelWidth visible: brandImageSectionLabel.visible
anchors.horizontalCenter: parent.horizontalCenter
visible: QGroundControl.settingsManager.brandImageSettings.visible && !ScreenTools.isMobile
Column { GridLayout {
id: userBrandImageCol id: brandImageGrid
spacing: ScreenTools.defaultFontPixelWidth anchors.margins: _margins
anchors.centerIn: parent anchors.top: parent.top
Row { anchors.left: parent.left
spacing: ScreenTools.defaultFontPixelWidth anchors.right: parent.right
visible: _userBrandImageIndoor.visible columns: 3
QGCLabel { QGCLabel {
anchors.baseline: userBrandImageIndoorBrowse.baseline text: qsTr("Indoor Image")
width: _labelWidth*1.5 visible: _userBrandImageIndoor.visible
text: qsTr("Indoor Brand Image Path:")
} }
QGCTextField { QGCTextField {
anchors.baseline: userBrandImageIndoorBrowse.baseline
readOnly: true readOnly: true
width: _editFieldWidth Layout.fillWidth: true
text: _userBrandImageIndoor.valueString.replace("file:///","") text: _userBrandImageIndoor.valueString.replace("file:///","")
} }
QGCButton { QGCButton {
id: userBrandImageIndoorBrowse text: qsTr("Browse")
text: "Browse"
onClicked: userBrandImageIndoorBrowseDialog.openForLoad() onClicked: userBrandImageIndoorBrowseDialog.openForLoad()
QGCFileDialog { QGCFileDialog {
id: userBrandImageIndoorBrowseDialog id: userBrandImageIndoorBrowseDialog
qgcView: _qgcView qgcView: _qgcView
title: qsTr("Choose custom brand image file:") title: qsTr("Choose custom brand image file")
folder: _userBrandImageIndoor.rawValue.replace("file:///","") folder: _userBrandImageIndoor.rawValue.replace("file:///","")
selectExisting: true selectExisting: true
selectFolder: false selectFolder: false
...@@ -825,31 +702,24 @@ QGCView { ...@@ -825,31 +702,24 @@ QGCView {
onAcceptedForLoad: _userBrandImageIndoor.rawValue = "file:///" + file onAcceptedForLoad: _userBrandImageIndoor.rawValue = "file:///" + file
} }
} }
}
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: _userBrandImageOutdoor.visible
QGCLabel { QGCLabel {
anchors.baseline: userBrandImageOutdoorBrowse.baseline text: qsTr("Outdoor Image")
width: _labelWidth*1.5 visible: _userBrandImageOutdoor.visible
text: qsTr("Outdoor Brand Image Path:")
} }
QGCTextField { QGCTextField {
anchors.baseline: userBrandImageOutdoorBrowse.baseline
readOnly: true readOnly: true
width: _editFieldWidth Layout.fillWidth: true
text: _userBrandImageOutdoor.valueString.replace("file:///","") text: _userBrandImageOutdoor.valueString.replace("file:///","")
} }
QGCButton { QGCButton {
id: userBrandImageOutdoorBrowse text: qsTr("Browse")
text: "Browse"
onClicked: userBrandImageOutdoorBrowseDialog.openForLoad() onClicked: userBrandImageOutdoorBrowseDialog.openForLoad()
QGCFileDialog { QGCFileDialog {
id: userBrandImageOutdoorBrowseDialog id: userBrandImageOutdoorBrowseDialog
qgcView: _qgcView qgcView: _qgcView
title: qsTr("Choose custom brand image file:") title: qsTr("Choose custom brand image file")
folder: _userBrandImageOutdoor.rawValue.replace("file:///","") folder: _userBrandImageOutdoor.rawValue.replace("file:///","")
selectExisting: true selectExisting: true
selectFolder: false selectFolder: false
...@@ -857,14 +727,12 @@ QGCView { ...@@ -857,14 +727,12 @@ QGCView {
onAcceptedForLoad: _userBrandImageOutdoor.rawValue = "file:///" + file onAcceptedForLoad: _userBrandImageOutdoor.rawValue = "file:///" + file
} }
} }
}
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: _userBrandImageIndoor.visible
QGCButton { QGCButton {
id: userBrandImageReset text: qsTr("Reset Default Brand Image")
text: "Reset Default Brand Image" Layout.columnSpan: 3
Layout.alignment: Qt.AlignHCenter
onClicked: { onClicked: {
_userBrandImageIndoor.rawValue = "" _userBrandImageIndoor.rawValue = ""
_userBrandImageOutdoor.rawValue = "" _userBrandImageOutdoor.rawValue = ""
...@@ -872,13 +740,19 @@ QGCView { ...@@ -872,13 +740,19 @@ QGCView {
} }
} }
} }
}
Item { width: 1; height: _margins }
QGCLabel { QGCLabel {
anchors.horizontalCenter: parent.horizontalCenter text: qsTr("%1 Version").arg(QGroundControl.appName)
text: qsTr("%1 Version: %2").arg(QGroundControl.appName).arg(QGroundControl.qgcVersion) Layout.alignment: Qt.AlignHCenter
}
QGCLabel {
text: QGroundControl.qgcVersion
Layout.alignment: Qt.AlignHCenter
} }
} // settingsColumn } // settingsColumn
}
} // QGCFlickable } // QGCFlickable
} // QGCViewPanel } // QGCViewPanel
} // QGCView } // QGCView
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment