5import QGroundControl.FactControls
6import QGroundControl.Controls
9 title: qsTr("Preferences")
10 promptId: QGroundControl.corePlugin.initialSetupPromptId
12 property var _appSettings: QGroundControl.settingsManager.appSettings
13 property var _unitsSettings: QGroundControl.settingsManager.unitsSettings
14 property bool _multipleFirmware: !QGroundControl.singleFirmwareSupport
15 property bool _multipleVehicleTypes: !QGroundControl.singleVehicleSupport
16 property var _rgFacts: [ _unitsSettings.horizontalDistanceUnits, _unitsSettings.verticalDistanceUnits, _unitsSettings.areaUnits, _unitsSettings.speedUnits, _unitsSettings.temperatureUnits ]
17 property var _rgLabels: [ qsTr("Horizontal Distance"), qsTr("Vertical Distance"), qsTr("Area"), qsTr("Speed"), qsTr("Temperature") ]
18 property real _descriptionWidth: ScreenTools.defaultFontPixelWidth * 40
20 function changeSystemOfUnits(metric) {
21 unitComboBoxRepeater.model = 0
22 unitComboBoxRepeater.model = _rgFacts.length
24 if (_unitsSettings.horizontalDistanceUnits.userVisible) {
25 _unitsSettings.horizontalDistanceUnits.value = metric ? UnitsSettings.HorizontalDistanceUnitsMeters : UnitsSettings.HorizontalDistanceUnitsFeet
27 if (_unitsSettings.verticalDistanceUnits.userVisible) {
28 _unitsSettings.verticalDistanceUnits.value = metric ? UnitsSettings.VerticalDistanceUnitsMeters : UnitsSettings.VerticalDistanceUnitsFeet
30 if (_unitsSettings.areaUnits.userVisible) {
31 _unitsSettings.areaUnits.value = metric ? UnitsSettings.AreaUnitsSquareMeters : UnitsSettings.AreaUnitsSquareFeet
33 if (_unitsSettings.speedUnits.userVisible) {
34 _unitsSettings.speedUnits.value = metric ? UnitsSettings.SpeedUnitsMetersPerSecond : UnitsSettings.SpeedUnitsFeetPerSecond
36 if (_unitsSettings.temperatureUnits.userVisible) {
37 _unitsSettings.temperatureUnits.value = metric ? UnitsSettings.TemperatureUnitsCelsius : UnitsSettings.TemperatureUnitsFarenheit
42 if (_appSettings.preferredFirmwareClass.rawValue !== 0) {
43 _appSettings.offlineEditingFirmwareClass.rawValue = _appSettings.preferredFirmwareClass.rawValue
45 if (_appSettings.preferredVehicleClass.rawValue !== 0) {
46 _appSettings.offlineEditingVehicleClass.rawValue = _appSettings.preferredVehicleClass.rawValue
51 spacing: ScreenTools.defaultFontPixelHeight
54 Layout.fillWidth: true
55 Layout.maximumWidth: _descriptionWidth
56 heading: qsTr("Vehicle Preferences")
57 headingDescription: qsTr("Select the firmware and vehicle type you typically use.")
59 LabelledFactComboBox {
60 Layout.fillWidth: true
61 label: qsTr("Preferred Firmware")
62 fact: _appSettings.preferredFirmwareClass
64 visible: _multipleFirmware
67 LabelledFactComboBox {
68 Layout.fillWidth: true
69 label: qsTr("Preferred Vehicle")
70 fact: _appSettings.preferredVehicleClass
72 visible: _multipleVehicleTypes
77 Layout.fillWidth: true
78 Layout.maximumWidth: _descriptionWidth
79 heading: qsTr("Measurement Units")
80 headingDescription: qsTr("Choose the measurement units you want to use. You can also change it later in General Settings.")
83 Layout.fillWidth: true
84 spacing: ScreenTools.defaultFontPixelWidth * 2
87 Layout.fillWidth: true
88 text: qsTr("System of units")
93 model: [ qsTr("Metric System"), qsTr("Imperial System") ]
94 currentIndex: _unitsSettings.horizontalDistanceUnits.value === UnitsSettings.HorizontalDistanceUnitsMeters ? 0 : 1
95 onActivated: (index) => { changeSystemOfUnits(currentIndex === 0) }
100 id: unitComboBoxRepeater
101 model: _rgFacts.length
103 LabelledFactComboBox {
104 Layout.fillWidth: true
105 label: _rgLabels[index]
106 fact: _rgFacts[index]
108 visible: _rgFacts[index].userVisible