mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-05 00:21:29 +00:00
a946dc323b
Add input validation and input conversion for the gradient factor settings. Signed-off-by: Michael Keller <mikeller@042.ch>
730 lines
20 KiB
QML
730 lines
20 KiB
QML
// SPDX-License-Identifier: GPL-2.0
|
||
import QtQuick 2.12
|
||
import QtQuick.Layouts 1.12
|
||
import QtQuick.Controls 2.12
|
||
import org.kde.kirigami 2.4 as Kirigami
|
||
import org.subsurfacedivelog.mobile 1.0
|
||
|
||
TemplatePage {
|
||
objectName: "Settings"
|
||
title: qsTr("Settings")
|
||
width: rootItem.colWidth - Kirigami.Units.gridUnit
|
||
property alias defaultCylinderModel: defaultCylinderBox.model
|
||
property alias defaultCylinderIndex: defaultCylinderBox.currentIndex
|
||
property real contentColumeWidth: width - 2 * Kirigami.Units.gridUnit
|
||
property var describe: [qsTr("Undefined"),
|
||
qsTr("Incorrect username/password combination"),
|
||
qsTr("Credentials need to be verified"),
|
||
qsTr("Credentials verified"),
|
||
qsTr("No cloud mode")]
|
||
Column {
|
||
width: contentColumeWidth
|
||
TemplateSection {
|
||
id: sectionGeneral
|
||
title: qsTr("General settings")
|
||
isExpanded: true
|
||
width: parent.width
|
||
|
||
GridLayout {
|
||
id: cloudSetting
|
||
visible: sectionGeneral.isExpanded
|
||
columns: 3
|
||
width: parent.width
|
||
TemplateLabel {
|
||
text: qsTr("Cloud status")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Email")
|
||
}
|
||
TemplateLabel {
|
||
text: Backend.cloud_verification_status === Enums.CS_NOCLOUD ? qsTr("Not applicable") : PrefCloudStorage.cloud_storage_email
|
||
Layout.fillWidth: true
|
||
}
|
||
TemplateButton {
|
||
id: changeCloudSettings
|
||
text: qsTr("Change")
|
||
onClicked: {
|
||
Backend.cloud_verification_status = Enums.CS_UNKNOWN
|
||
manager.startPageText = qsTr("Starting...");
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Status")
|
||
Layout.preferredHeight: Kirigami.Units.gridUnit * 1.5
|
||
}
|
||
TemplateLabel {
|
||
text: describe[Backend.cloud_verification_status]
|
||
Layout.preferredHeight: Kirigami.Units.gridUnit * 1.5
|
||
}
|
||
TemplateButton {
|
||
id: deleteCloudAccount
|
||
enabled: Backend.cloud_verification_status !== Enums.CS_NOCLOUD
|
||
text: qsTr("Delete Account")
|
||
onClicked: {
|
||
manager.appendTextToLog("requesting account deletion");
|
||
showPage(deleteAccount)
|
||
}
|
||
}
|
||
}
|
||
TemplateLine {
|
||
visible: sectionGeneral.isExpanded
|
||
}
|
||
GridLayout {
|
||
id: defaultCylinder
|
||
visible: sectionGeneral.isExpanded
|
||
columns: 2
|
||
width: parent.width
|
||
TemplateLabel {
|
||
text: qsTr("Default Cylinder")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 2
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Cylinder:")
|
||
}
|
||
TemplateSlimComboBox {
|
||
id: defaultCylinderBox
|
||
Layout.fillWidth: true
|
||
onActivated: {
|
||
// the entry for 'no default cylinder' is known to be the top, but its text
|
||
// is possibly translated so check against the index
|
||
if (currentIndex === 0)
|
||
PrefEquipment.default_cylinder = ""
|
||
else
|
||
PrefEquipment.default_cylinder = defaultCylinderBox.currentText
|
||
}
|
||
}
|
||
}
|
||
TemplateLine {
|
||
visible: sectionGeneral.isExpanded
|
||
}
|
||
GridLayout {
|
||
id: divecomputers
|
||
visible: sectionGeneral.isExpanded
|
||
columns: 2
|
||
width: parent.width
|
||
TemplateLabel {
|
||
text: qsTr("Dive computers")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing
|
||
Layout.columnSpan: 2
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Forget remembered dive computers")
|
||
Layout.fillWidth: true
|
||
}
|
||
TemplateButton {
|
||
id: forgetDCButton
|
||
text: qsTr("Forget")
|
||
enabled: PrefDiveComputer.vendor1 !== ""
|
||
onClicked: {
|
||
PrefDiveComputer.vendor1 = PrefDiveComputer.product1 = PrefDiveComputer.device1 = ""
|
||
PrefDiveComputer.vendor2 = PrefDiveComputer.product2 = PrefDiveComputer.device2 = ""
|
||
PrefDiveComputer.vendor3 = PrefDiveComputer.product3 = PrefDiveComputer.device3 = ""
|
||
PrefDiveComputer.vendor4 = PrefDiveComputer.product4 = PrefDiveComputer.device4 = ""
|
||
PrefDiveComputer.vendor = PrefDiveComputer.product = PrefDiveComputer.device = ""
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
TemplateSection {
|
||
id: sectionTheme
|
||
title: qsTr("Theme")
|
||
width: parent.width
|
||
GridLayout {
|
||
visible: sectionTheme.isExpanded
|
||
columns: 2
|
||
width: parent.width
|
||
TemplateLabel {
|
||
text: qsTr("Color theme")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 2
|
||
}
|
||
TemplateSlimComboBox {
|
||
editable: false
|
||
Layout.columnSpan: 2
|
||
currentIndex: (subsurfaceTheme.currentTheme === "Blue") ? 0 :
|
||
(subsurfaceTheme.currentTheme === "Pink") ? 1 : 2
|
||
model: ListModel {
|
||
ListElement {text: qsTr("Blue")}
|
||
ListElement {text: qsTr("Pink")}
|
||
ListElement {text: qsTr("Dark")}
|
||
}
|
||
onActivated: {
|
||
subsurfaceTheme.currentTheme = currentIndex === 0 ? "Blue" : currentIndex === 1 ? "Pink" : "Dark"
|
||
}
|
||
}
|
||
Rectangle {
|
||
color: subsurfaceTheme.backgroundColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("background")
|
||
color: subsurfaceTheme.textColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
color: subsurfaceTheme.backgroundColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("text")
|
||
color: subsurfaceTheme.textColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.primaryColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("primary")
|
||
color: subsurfaceTheme.primaryTextColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.primaryTextColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("primary text")
|
||
color: subsurfaceTheme.primaryColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.darkerPrimaryColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("darker primary")
|
||
color: subsurfaceTheme.darkerPrimaryTextColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.darkerPrimaryTextColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("darker primary text")
|
||
color: subsurfaceTheme.darkerPrimaryColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.lightPrimaryColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("light primary")
|
||
color: subsurfaceTheme.lightPrimaryTextColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.lightPrimaryTextColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("light primary text")
|
||
color: subsurfaceTheme.lightPrimaryColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: ""
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.secondaryTextColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("secondary text")
|
||
color: subsurfaceTheme.primaryColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
Rectangle {
|
||
border.width: 2
|
||
border.color: "black"
|
||
color: subsurfaceTheme.drawerColor
|
||
Layout.fillWidth: true
|
||
Layout.preferredHeight: 2 * Kirigami.Units.gridUnit
|
||
TemplateLabel {
|
||
text: qsTr("drawer")
|
||
color: subsurfaceTheme.textColor
|
||
colorBackground: parent.color
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: ""
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Font size")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 2
|
||
}
|
||
Flow {
|
||
Layout.columnSpan: 2
|
||
spacing: Kirigami.Units.largeSpacing
|
||
TemplateButton {
|
||
text: qsTr("very small")
|
||
fontSize: subsurfaceTheme.regularPointSize / subsurfaceTheme.currentScale * 0.75
|
||
enabled: subsurfaceTheme.currentScale !== 0.75
|
||
onClicked: {
|
||
subsurfaceTheme.currentScale = 0.75
|
||
rootItem.setupUnits()
|
||
}
|
||
}
|
||
TemplateButton {
|
||
text: qsTr("small")
|
||
Layout.fillWidth: true
|
||
fontSize: subsurfaceTheme.regularPointSize / subsurfaceTheme.currentScale * 0.85
|
||
enabled: subsurfaceTheme.currentScale !== 0.85
|
||
onClicked: {
|
||
subsurfaceTheme.currentScale = 0.85
|
||
rootItem.setupUnits()
|
||
}
|
||
}
|
||
TemplateButton {
|
||
text: qsTr("regular")
|
||
Layout.fillWidth: true
|
||
fontSize: subsurfaceTheme.regularPointSize / subsurfaceTheme.currentScale * 0.85
|
||
enabled: subsurfaceTheme.currentScale !== 1.0
|
||
onClicked: {
|
||
subsurfaceTheme.currentScale = 1.0
|
||
rootItem.setupUnits()
|
||
}
|
||
}
|
||
TemplateButton {
|
||
text: qsTr("large")
|
||
Layout.fillWidth: true
|
||
fontSize: subsurfaceTheme.regularPointSize / subsurfaceTheme.currentScale * 1.15
|
||
enabled: subsurfaceTheme.currentScale !== 1.15
|
||
onClicked: {
|
||
subsurfaceTheme.currentScale = 1.15
|
||
rootItem.setupUnits()
|
||
}
|
||
}
|
||
TemplateButton {
|
||
text: qsTr("very large")
|
||
Layout.fillWidth: true
|
||
fontSize: subsurfaceTheme.regularPointSize / subsurfaceTheme.currentScale * 1.3
|
||
enabled: subsurfaceTheme.currentScale !== 1.3
|
||
onClicked: {
|
||
subsurfaceTheme.currentScale = 1.3
|
||
rootItem.setupUnits()
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
TemplateSection {
|
||
id: sectionUnits
|
||
title: qsTr("Units")
|
||
width: parent.width
|
||
RowLayout {
|
||
visible: sectionUnits.isExpanded
|
||
width: parent.width
|
||
TemplateRadioButton {
|
||
text: qsTr("Metric")
|
||
Layout.fillWidth: true
|
||
checked: (Backend.unit_system === Enums.METRIC)
|
||
onClicked: {
|
||
Backend.unit_system = Enums.METRIC
|
||
manager.changesNeedSaving()
|
||
manager.refreshDiveList()
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("Imperial")
|
||
Layout.fillWidth: true
|
||
checked: (Backend.unit_system === Enums.IMPERIAL)
|
||
onClicked: {
|
||
Backend.unit_system = Enums.IMPERIAL
|
||
manager.changesNeedSaving()
|
||
manager.refreshDiveList()
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("Personalize")
|
||
Layout.fillWidth: true
|
||
checked: (Backend.unit_system === Enums.PERSONALIZE)
|
||
onClicked: {
|
||
Backend.unit_system = Enums.PERSONALIZE
|
||
manager.changesNeedSaving()
|
||
manager.refreshDiveList()
|
||
}
|
||
}
|
||
}
|
||
|
||
GridLayout {
|
||
visible: sectionUnits.isExpanded
|
||
width: parent.width - 2 * Kirigami.Units.gridUnit
|
||
enabled: (Backend.unit_system === Enums.PERSONALIZE)
|
||
anchors.horizontalCenter: parent.horizontalCenter
|
||
columns: 3
|
||
|
||
ButtonGroup { id: unitDepth }
|
||
ButtonGroup { id: unitPressure }
|
||
ButtonGroup { id: unitVolume }
|
||
ButtonGroup { id: unitTemperature }
|
||
ButtonGroup { id: unitWeight }
|
||
|
||
TemplateLabel {
|
||
text: qsTr("Depth")
|
||
font.bold: (Backend.unit_system === Enums.PERSONALIZE)
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("meters")
|
||
checked: (Backend.length === Enums.METERS)
|
||
ButtonGroup.group: unitDepth
|
||
onClicked: {
|
||
Backend.length = Enums.METERS
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("feet")
|
||
checked: (Backend.length === Enums.FEET)
|
||
ButtonGroup.group: unitDepth
|
||
onClicked: {
|
||
Backend.length = Enums.FEET
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Pressure")
|
||
font.bold: (Backend.unit_system === Enums.PERSONALIZE)
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("bar")
|
||
checked: (Backend.pressure === Enums.BAR)
|
||
ButtonGroup.group: unitPressure
|
||
onClicked: {
|
||
Backend.pressure = Enums.BAR
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("psi")
|
||
checked: (Backend.pressure === Enums.PSI)
|
||
ButtonGroup.group: unitPressure
|
||
onClicked: {
|
||
Backend.pressure = Enums.PSI
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Volume")
|
||
font.bold: (Backend.unit_system === Enums.PERSONALIZE)
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("liter")
|
||
checked: (Backend.volume === Enums.LITER)
|
||
ButtonGroup.group: unitVolume
|
||
onClicked: {
|
||
Backend.volume = Enums.LITER
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("cuft")
|
||
checked: (Backend.volume === Enums.CUFT)
|
||
ButtonGroup.group: unitVolume
|
||
onClicked: {
|
||
Backend.volume = Enums.CUFT
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Temperature")
|
||
font.bold: (Backend.unit_system === Enums.PERSONALIZE)
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("celsius")
|
||
checked: (Backend.temperature === Enums.CELSIUS)
|
||
ButtonGroup.group: unitTemperature
|
||
onClicked: {
|
||
Backend.temperature = Enums.CELSIUS
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("fahrenheit")
|
||
checked: (Backend.temperature === Enums.FAHRENHEIT)
|
||
ButtonGroup.group: unitTemperature
|
||
onClicked: {
|
||
Backend.temperature = Enums.FAHRENHEIT
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Weight")
|
||
font.bold: (Backend.unit_system === Enums.PERSONALIZE)
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("kg")
|
||
checked: (Backend.weight === Enums.KG)
|
||
ButtonGroup.group: unitWeight
|
||
onClicked: {
|
||
Backend.weight = Enums.KG
|
||
}
|
||
}
|
||
TemplateRadioButton {
|
||
text: qsTr("lbs")
|
||
checked: (Backend.weight === Enums.LBS)
|
||
ButtonGroup.group: unitWeight
|
||
onClicked: {
|
||
Backend.weight = Enums.LBS
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
TemplateSection {
|
||
id: sectionAdvanced
|
||
title: qsTr("Advanced")
|
||
width: parent.width
|
||
|
||
GridLayout {
|
||
visible: sectionAdvanced.isExpanded
|
||
width: parent.width
|
||
columns: 3
|
||
|
||
TemplateLine {
|
||
visible: sectionAdvanced.isExpanded
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Bluetooth")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Temporarily show all bluetooth devices \neven if not recognized as dive computers.\nPlease report DCs that need this setting")
|
||
Layout.fillWidth: true
|
||
Layout.columnSpan: 2
|
||
}
|
||
SsrfSwitch {
|
||
id: nonDCButton
|
||
checked: manager.showNonDiveComputers
|
||
onClicked: {
|
||
manager.showNonDiveComputers = checked
|
||
}
|
||
}
|
||
|
||
TemplateLine {
|
||
visible: sectionAdvanced.isExpanded
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Display")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Show only one column in Portrait mode")
|
||
Layout.fillWidth: true
|
||
Layout.columnSpan: 2
|
||
}
|
||
SsrfSwitch {
|
||
id: singleColumnButton
|
||
checked: PrefDisplay.singleColumnPortrait
|
||
onClicked: {
|
||
PrefDisplay.singleColumnPortrait = checked
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Depth line based on ×3 intervals")
|
||
Layout.columnSpan: 2
|
||
}
|
||
SsrfSwitch {
|
||
checked: PrefDisplay.three_m_based_grid
|
||
onClicked: {
|
||
PrefDisplay.three_m_based_grid = checked
|
||
rootItem.settingsChanged()
|
||
}
|
||
}
|
||
TemplateLine {
|
||
visible: sectionAdvanced.isExpanded
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Profile deco ceiling")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Show DC reported ceiling")
|
||
Layout.columnSpan: 2
|
||
}
|
||
SsrfSwitch {
|
||
checked: PrefTechnicalDetails.dcceiling
|
||
onClicked: {
|
||
PrefTechnicalDetails.dcceiling = checked
|
||
rootItem.settingsChanged()
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Show calculated ceiling")
|
||
Layout.columnSpan: 2
|
||
}
|
||
SsrfSwitch {
|
||
checked: PrefTechnicalDetails.calcceiling
|
||
onClicked: {
|
||
PrefTechnicalDetails.calcceiling = checked
|
||
rootItem.settingsChanged()
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
enabled: PrefTechnicalDetails.calcceiling
|
||
text: qsTr("GFLow (10 to 150)")
|
||
}
|
||
TemplateSpinBox {
|
||
visible: PrefTechnicalDetails.calcceiling
|
||
id: gfLow
|
||
Layout.columnSpan: 2
|
||
Layout.alignment: Qt.AlignHCenter
|
||
from: 10
|
||
to: 150
|
||
stepSize: 1
|
||
value: PrefTechnicalDetails.gflow
|
||
validator: RegExpValidator { regExp: /1?\d{0,2}%?/ }
|
||
textFromValue: function (value, locale) {
|
||
return value + "%"
|
||
}
|
||
valueFromText: function(text, locale) {
|
||
var result = parseInt(text);
|
||
|
||
if (result < 10)
|
||
result = 10;
|
||
else if (result > 150)
|
||
result = 150;
|
||
else if (isNaN(result))
|
||
result = 35;
|
||
|
||
return result;
|
||
}
|
||
onValueChanged: {
|
||
PrefTechnicalDetails.gflow = value
|
||
rootItem.settingsChanged()
|
||
}
|
||
}
|
||
TemplateLabel {
|
||
enabled: PrefTechnicalDetails.calcceiling
|
||
text: qsTr("GFHigh (10 to 150")
|
||
}
|
||
TemplateSpinBox {
|
||
visible: PrefTechnicalDetails.calcceiling
|
||
id: gfHigh
|
||
Layout.columnSpan: 2
|
||
Layout.alignment: Qt.AlignHCenter
|
||
from: 10
|
||
to: 150
|
||
stepSize: 1
|
||
value: PrefTechnicalDetails.gfhigh
|
||
validator: RegExpValidator { regExp: /1?\d{0,2}%?/ }
|
||
textFromValue: function (value, locale) {
|
||
return value + "%"
|
||
}
|
||
valueFromText: function(text, locale) {
|
||
var result = parseInt(text);
|
||
|
||
if (result < 10)
|
||
result = 10;
|
||
else if (result > 150)
|
||
result = 150;
|
||
else if (isNaN(result))
|
||
result = 70;
|
||
|
||
return result;
|
||
}
|
||
onValueChanged: {
|
||
PrefTechnicalDetails.gfhigh = value
|
||
rootItem.settingsChanged()
|
||
}
|
||
}
|
||
TemplateLine {
|
||
visible: sectionAdvanced.isExpanded
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Developer")
|
||
font.pointSize: subsurfaceTheme.headingPointSize
|
||
font.weight: Font.Light
|
||
Layout.topMargin: Kirigami.Units.largeSpacing
|
||
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
||
Layout.columnSpan: 3
|
||
}
|
||
TemplateLabel {
|
||
text: qsTr("Display Developer menu")
|
||
Layout.fillWidth: true
|
||
Layout.columnSpan: 2
|
||
}
|
||
SsrfSwitch {
|
||
id: developerButton
|
||
checked: PrefDisplay.show_developer
|
||
onClicked: {
|
||
PrefDisplay.show_developer = checked
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|