| 
									
										
										
										
											2019-11-23 20:44:23 +01:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							|  |  |  | import QtQuick 2.12 | 
					
						
							|  |  |  | import QtQuick.Controls 2.12 | 
					
						
							|  |  |  | import QtQuick.Controls 1.4 | 
					
						
							|  |  |  | import QtQuick.Layouts 1.12 | 
					
						
							|  |  |  | import QtQuick.Dialogs 1.3 | 
					
						
							|  |  |  | import org.subsurfacedivelog.mobile 1.0 | 
					
						
							|  |  |  | import org.kde.kirigami 2.4 as Kirigami | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-27 22:20:27 +01:00
										 |  |  | TemplatePage { | 
					
						
							| 
									
										
										
										
											2019-11-23 20:44:23 +01:00
										 |  |  | 	title: qsTr("Dive planner setup") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-08 11:35:07 +01:00
										 |  |  | 	property string speedUnit: (Backend.length === Enums.METERS) ? qsTr(" m/min") : qsTr(" ft/min") | 
					
						
							|  |  |  | 	property string volumeUnit: (Backend.volume === Enums.LITER) ? qsTr(" l/min") : qsTr(" cuft/min") | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 	property string pressureUnit: (Backend.pressure === Enums.BAR) ? qsTr(" BAR") : qsTr(" PSI") | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 	Connections { | 
					
						
							| 
									
										
										
										
											2020-01-19 10:06:51 +01:00
										 |  |  | 		target: Backend | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 		onLengthChanged: { | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 			spinAscrate75.value = Backend.ascrate75 | 
					
						
							|  |  |  | 			spinAscrate50.value = Backend.ascrate50 | 
					
						
							|  |  |  | 			spinAscratestops.value = Backend.ascratestops | 
					
						
							|  |  |  | 			spinAscratelast6m.value = Backend.ascratelast6m | 
					
						
							|  |  |  | 			spinDescrate.value = Backend.descrate | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 			spinBestmixend.value = Backend.bestmixend | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-01-08 11:35:07 +01:00
										 |  |  | 		onVolumeChanged: { | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 			spinBottomsac.value = Backend.bottomsac | 
					
						
							|  |  |  | 			spinDecosac.value = Backend.decosac | 
					
						
							| 
									
										
										
										
											2020-01-08 11:35:07 +01:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 		onPressureChanged: { | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 	Column { | 
					
						
							| 
									
										
										
										
											2019-11-23 20:44:23 +01:00
										 |  |  | 		width: parent.width | 
					
						
							|  |  |  | 		spacing: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 12:54:18 +01:00
										 |  |  | 		Layout.margins: Kirigami.Units.gridUnit | 
					
						
							| 
									
										
										
										
											2019-11-23 20:44:23 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 		TemplateSection { | 
					
						
							|  |  |  | 			id: rates | 
					
						
							|  |  |  | 			title: qsTr("Rates") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			GridLayout { | 
					
						
							|  |  |  | 				columns: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 12:54:18 +01:00
										 |  |  | 				rowSpacing: Kirigami.Units.smallSpacing * 2 | 
					
						
							|  |  |  | 				columnSpacing: Kirigami.Units.smallSpacing | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				visible: rates.isExpanded | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							|  |  |  | 					text: qsTr("Ascent") | 
					
						
							|  |  |  | 					font.bold: true | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("below 75% avg. depth") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 					id: spinAscrate75 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 					value: Backend.ascrate75 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-01 18:28:30 +01:00
										 |  |  | 						return value + speedUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 						Backend.ascrate75 = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("75% to 50% avg. depth") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 					id: spinAscrate50 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 					value: Backend.ascrate50 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-01 18:28:30 +01:00
										 |  |  | 						return value + speedUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 						Backend.ascrate50 = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("50% avg. depth to 6m") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 					id: spinAscratestops | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 					value: Backend.ascratestops | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-01 18:28:30 +01:00
										 |  |  | 						return value + speedUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 						Backend.ascratestops = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("6m to surface") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 					id: spinAscratelast6m | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 					value: Backend.ascratelast6m | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-01 18:28:30 +01:00
										 |  |  | 						return value + speedUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 						Backend.ascratelast6m = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							|  |  |  | 					text: qsTr("Descent") | 
					
						
							|  |  |  | 					font.bold: true | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Surface to the bottom") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-02 08:21:13 +01:00
										 |  |  | 					id: spinDescrate | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 					value: Backend.descrate | 
					
						
							| 
									
										
										
										
											2020-01-08 10:02:41 +01:00
										 |  |  | 					enabled: !Backend.drop_stone_mode | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-01 18:28:30 +01:00
										 |  |  | 						return value + speedUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-19 18:49:42 +01:00
										 |  |  | 						Backend.descrate = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2020-01-08 10:02:41 +01:00
										 |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Drop to first depth") | 
					
						
							|  |  |  | 					checked: Backend.drop_stone_mode | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.drop_stone_mode = checked | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		TemplateSection { | 
					
						
							|  |  |  | 			id: planning | 
					
						
							|  |  |  | 			title: qsTr("Planning") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			GridLayout { | 
					
						
							|  |  |  | 				columns: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 12:54:18 +01:00
										 |  |  | 				rowSpacing: Kirigami.Units.smallSpacing * 2 | 
					
						
							|  |  |  | 				columnSpacing: Kirigami.Units.smallSpacing | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				visible: planning.isExpanded | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					text: qsTr("Dive mode") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateComboBox { | 
					
						
							|  |  |  | 					editable: false | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					currentIndex: Backend.dive_mode | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					model: ListModel { | 
					
						
							|  |  |  | 						ListElement {text: qsTr("Open circuit")} | 
					
						
							|  |  |  | 						ListElement {text: qsTr("CCR")} | 
					
						
							|  |  |  | 						ListElement {text: qsTr("pSCR")} | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onActivated:  { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.dive_mode = currentIndex | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Bailout: Deco on OC") | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.dobailout | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateRadioButton { | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					text: qsTr("Recreational mode") | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					Layout.columnSpan: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.planner_deco_mode === Enums.RECREATIONAL | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.planner_deco_mode = Enums.RECREATIONAL | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Reserve gas") | 
					
						
							|  |  |  | 					leftPadding: Kirigami.Units.smallSpacing * 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					enabled: Backend.planner_deco_mode === Enums.RECREATIONAL | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					value: Backend.reserve_gas | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return value + volumeUnit | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.reserve_gas = value | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Safety stop") | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							|  |  |  | 					leftPadding: Kirigami.Units.smallSpacing * 6 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.safetystop | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.safetystop = checked | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				TemplateRadioButton { | 
					
						
							| 
									
										
										
										
											2020-03-04 08:03:24 -08:00
										 |  |  | 					text: qsTr("Bühlmann deco") | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					Layout.columnSpan: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.planner_deco_mode === Enums.BUEHLMANN | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.planner_deco_mode = Enums.BUEHLMANN | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("GFLow") | 
					
						
							|  |  |  | 					leftPadding: Kirigami.Units.smallSpacing * 2 | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					value: Backend.gflow | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return value + volumeUnit | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.gflow = value | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("GFHigh") | 
					
						
							|  |  |  | 					leftPadding: Kirigami.Units.smallSpacing * 2 | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					value: Backend.gfhigh | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return value + volumeUnit | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.gfhigh = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				TemplateRadioButton { | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					text: qsTr("VPM-B deco") | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.planner_deco_mode === Enums.VPMB | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.planner_deco_mode = Enums.VPMB | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Conservatism level") | 
					
						
							|  |  |  | 					leftPadding: 20 | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 0 | 
					
						
							|  |  |  | 					to: 4 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					value: Backend.vpmb_conservatism | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return qsTr("+") + value | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.vpmb_conservatism = value | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Last stop at ??") | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Plan backgas breaks") | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.last_stop6m | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.last_stop6m = checked | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Only switch at required stops") | 
					
						
							|  |  |  | 					Layout.columnSpan: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					checked: Backend.switch_at_req_stop | 
					
						
							|  |  |  | 					onClicked: { | 
					
						
							|  |  |  | 						Backend.switch_at_req_stop = checked | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Min switch time") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 0 | 
					
						
							|  |  |  | 					to: 4 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					value: Backend.min_switch_duration | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return qsTr("+") + value | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.min_switch_duration = value | 
					
						
							| 
									
										
										
										
											2020-01-08 21:15:57 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Surface segment") | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 0 | 
					
						
							|  |  |  | 					to: 4 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 					value: Backend.surface_segment | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return qsTr("+") + value | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-22 11:05:41 +01:00
										 |  |  | 						Backend.surface_segment = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		TemplateSection { | 
					
						
							|  |  |  | 			id: gasoptions | 
					
						
							|  |  |  | 			title: qsTr("Gas options") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			GridLayout { | 
					
						
							|  |  |  | 				columns: 2 | 
					
						
							| 
									
										
										
										
											2020-01-22 12:54:18 +01:00
										 |  |  | 				rowSpacing: Kirigami.Units.smallSpacing * 2 | 
					
						
							|  |  |  | 				columnSpacing: Kirigami.Units.smallSpacing | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				visible: gasoptions.isExpanded | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Bottom SAC") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-08 11:35:07 +01:00
										 |  |  | 					id: spinBottomsac | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 					to:  (Backend.volume === Enums.LITER) ? 85 : 300 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 					value: Backend.bottomsac | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 						return (Backend.volume === Enums.LITER) ? | 
					
						
							|  |  |  | 									value + volumeUnit : | 
					
						
							|  |  |  | 									(value / 100).toFixed(2) + volumeUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 						Backend.bottomsac = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Deco SAC") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-08 11:35:07 +01:00
										 |  |  | 					id: spinDecosac | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 					to: (Backend.volume === Enums.LITER) ? 85 : 300 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 					value: Backend.decosac | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 						return (Backend.volume === Enums.LITER) ? | 
					
						
							|  |  |  | 									value + volumeUnit : | 
					
						
							|  |  |  | 									(value / 100).toFixed(2) + volumeUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-08 12:06:23 +01:00
										 |  |  | 						Backend.decosac = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("SAC factor") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-21 16:16:10 +01:00
										 |  |  | 					from: 10 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-21 16:16:10 +01:00
										 |  |  | 					value: Backend.sacfactor | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return (value / 10).toFixed(1) | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-21 16:16:10 +01:00
										 |  |  | 						Backend.sacfactor = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Problem solving time") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 9 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-21 12:24:40 +01:00
										 |  |  | 					value: Backend.problemsolvingtime | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-21 12:24:40 +01:00
										 |  |  | 						return value + qsTr(" min") | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-21 12:24:40 +01:00
										 |  |  | 						Backend.problemsolvingtime = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Bottom pO2") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 0 | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					to: 250 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					value: Backend.bottompo2 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return (value / 100).toFixed(2) + "bar" | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 						Backend.bottompo2 = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Deco pO2") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							|  |  |  | 					from: 0 | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					to: 250 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					value: Backend.decopo2 | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							|  |  |  | 						return (value / 100).toFixed(2) + "bar" | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 						Backend.decopo2 = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateLabel { | 
					
						
							|  |  |  | 					text: qsTr("Best mix END") | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateSpinBox { | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					id: spinBestmixend | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					from: 1 | 
					
						
							|  |  |  | 					to: 99 | 
					
						
							|  |  |  | 					stepSize: 1 | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					value: Backend.bestmixend | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					textFromValue: function (value, locale) { | 
					
						
							| 
									
										
										
										
											2020-01-08 11:35:07 +01:00
										 |  |  | 						return value + speedUnit | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					onValueModified: { | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 						Backend.bestmixend = value | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("O2 narcotic") | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 					checked: Backend.o2narcotic | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					onClicked: { | 
					
						
							| 
									
										
										
										
											2020-01-21 17:43:18 +01:00
										 |  |  | 						Backend.o2narcotic = checked | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		TemplateSection { | 
					
						
							|  |  |  | 			id: notes | 
					
						
							|  |  |  | 			title: qsTr("Notes") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			ColumnLayout { | 
					
						
							|  |  |  | 				visible: notes.isExpanded | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Display runtime") | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 					checked: Backend.display_runtime | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					onClicked: { | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 						Backend.display_runtime = checked | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Display segment duration") | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 					checked: Backend.display_duration | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					onClicked: { | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 						Backend.display_duration = checked | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Display transitions in deco") | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 					checked: Backend.display_transitions | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					onClicked: { | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 						Backend.display_transitions = checked | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Verbatim dive plan") | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 					checked: Backend.verbatim_plan | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					onClicked: { | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 						Backend.verbatim_plan = checked | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 				TemplateCheckBox { | 
					
						
							|  |  |  | 					text: qsTr("Display plan variations") | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 					checked: Backend.display_variations | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					onClicked: { | 
					
						
							| 
									
										
										
										
											2020-01-20 20:10:35 +01:00
										 |  |  | 						Backend.display_variations = checked | 
					
						
							| 
									
										
										
										
											2019-12-29 20:06:42 +01:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2019-12-26 08:35:41 +01:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2019-11-23 20:44:23 +01:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |