mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
mobile-widgets/qml: diveplannersetup graphical layout
Add graphical layout to setup page Signed-off-by: Jan Iversen <jan@casacondor.com>
This commit is contained in:
parent
e61b6bc437
commit
b58d403906
1 changed files with 311 additions and 3 deletions
|
@ -10,13 +10,321 @@ import org.kde.kirigami 2.4 as Kirigami
|
||||||
Kirigami.ScrollablePage {
|
Kirigami.ScrollablePage {
|
||||||
title: qsTr("Dive planner setup")
|
title: qsTr("Dive planner setup")
|
||||||
|
|
||||||
ColumnLayout {
|
Column {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: 1
|
spacing: 1
|
||||||
Layout.margins: 10
|
Layout.margins: 10
|
||||||
|
|
||||||
Text {
|
TemplateSection {
|
||||||
text: "Dive planner setup"
|
id: rates
|
||||||
|
title: qsTr("Rates")
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
columns: 2
|
||||||
|
rowSpacing: 10
|
||||||
|
columnSpacing: 20
|
||||||
|
visible: rates.isExpanded
|
||||||
|
|
||||||
|
TemplateLabel {
|
||||||
|
Layout.columnSpan: 2
|
||||||
|
text: qsTr("Ascent")
|
||||||
|
font.bold: true
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("below 75% avg. depth")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("m/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("75% to 50% avg. depth")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("m/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("50% avg. depth to 6m")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("m/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("6m to surface")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("m/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
Layout.columnSpan: 2
|
||||||
|
text: qsTr("Descent")
|
||||||
|
font.bold: true
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Surface to the bottom")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("m/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateSection {
|
||||||
|
id: planning
|
||||||
|
title: qsTr("Planning")
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
columns: 2
|
||||||
|
rowSpacing: 10
|
||||||
|
columnSpacing: 20
|
||||||
|
visible: planning.isExpanded
|
||||||
|
|
||||||
|
// Only support "Open circuit"
|
||||||
|
TemplateLabel {
|
||||||
|
text: "WORK in progress"
|
||||||
|
}
|
||||||
|
|
||||||
|
TemplateRadioButton {
|
||||||
|
text: qsTr("Recreational NO deco")
|
||||||
|
Layout.columnSpan: 2
|
||||||
|
}
|
||||||
|
// Reserve gas is 50bar (PADI/SSI rules)
|
||||||
|
TemplateRadioButton {
|
||||||
|
text: qsTr("Bühlmann, GFLow/GFHigh:")
|
||||||
|
}
|
||||||
|
Row {
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
TemplateSpinBox {
|
||||||
|
width: planning.width / 2 -30
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr(" %")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
width: planning.width / 2 -30
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 15
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr(" %")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateRadioButton {
|
||||||
|
text: qsTr("VPM-B, Conservatism:")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 0
|
||||||
|
to: 4
|
||||||
|
stepSize: 1
|
||||||
|
value: 2
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return qsTr("+") + value
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateSection {
|
||||||
|
id: gasoptions
|
||||||
|
title: qsTr("Gas options")
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
columns: 2
|
||||||
|
rowSpacing: 10
|
||||||
|
columnSpacing: 20
|
||||||
|
visible: gasoptions.isExpanded
|
||||||
|
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Bottom SAC")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 20
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("l/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Deco SAC")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 17
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("l/min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("SAC factor")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 20
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 20
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return (value / 10).toFixed(1)
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Problem solving time")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 9
|
||||||
|
stepSize: 1
|
||||||
|
value: 4
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("min")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Bottom pO2")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 0
|
||||||
|
to: 200
|
||||||
|
stepSize: 1
|
||||||
|
value: 120
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return (value / 100).toFixed(2) + "bar"
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Deco pO2")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 0
|
||||||
|
to: 200
|
||||||
|
stepSize: 1
|
||||||
|
value: 160
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return (value / 100).toFixed(2) + "bar"
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateLabel {
|
||||||
|
text: qsTr("Best mix END")
|
||||||
|
}
|
||||||
|
TemplateSpinBox {
|
||||||
|
from: 1
|
||||||
|
to: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: 20
|
||||||
|
textFromValue: function (value, locale) {
|
||||||
|
return value + qsTr("m")
|
||||||
|
}
|
||||||
|
onValueModified: {
|
||||||
|
console.log("got value: " + value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateCheckBox {
|
||||||
|
text: qsTr("O2 narcotic")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TemplateSection {
|
||||||
|
id: notes
|
||||||
|
title: qsTr("Notes")
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
visible: notes.isExpanded
|
||||||
|
|
||||||
|
TemplateCheckBox {
|
||||||
|
text: qsTr("Display runtime")
|
||||||
|
}
|
||||||
|
TemplateCheckBox {
|
||||||
|
text: qsTr("Display segment duration")
|
||||||
|
}
|
||||||
|
TemplateCheckBox {
|
||||||
|
text: qsTr("Display transitions in deco")
|
||||||
|
}
|
||||||
|
TemplateCheckBox {
|
||||||
|
text: qsTr("Verbatim dive plan")
|
||||||
|
}
|
||||||
|
TemplateCheckBox {
|
||||||
|
text: qsTr("Display plan variations")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue