summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jan Mulder <jlmulder@xs4all.nl>2017-04-19 08:05:28 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-04-20 10:57:11 -0700
commit89b914e47dc2f996e5bd0d80dfba5e9b00b28631 (patch)
tree580b77014bd8582988c4b24fac656bf8f39df22e
parent9b8fc9f64a78ac9c80f071a87e15da301375cede (diff)
downloadsubsurface-89b914e47dc2f996e5bd0d80dfba5e9b00b28631.tar.gz
Preserve dive mode when planning a dive
Data such as cilinders and used gasses are populated fromn the currently selected dive when starting the planner. It is more logical to use the dive mode (OC, CCR, pSCR) of the currently selected dive as well. This commits changes this. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
-rw-r--r--desktop-widgets/diveplanner.cpp5
-rw-r--r--desktop-widgets/diveplanner.h1
-rw-r--r--desktop-widgets/mainwindow.cpp3
3 files changed, 9 insertions, 0 deletions
diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp
index 9dce53da8..3b4a5484b 100644
--- a/desktop-widgets/diveplanner.cpp
+++ b/desktop-widgets/diveplanner.cpp
@@ -186,6 +186,11 @@ void DivePlannerWidget::setSurfacePressure(int surface_pressure)
ui.ATMPressure->setValue(surface_pressure);
}
+void PlannerSettingsWidget::setDiveMode(int mode)
+{
+ ui.rebreathermode->setCurrentIndex(mode);
+}
+
void DivePlannerWidget::setSalinity(int salinity)
{
ui.salinity->setValue(salinity / 10000.0);
diff --git a/desktop-widgets/diveplanner.h b/desktop-widgets/diveplanner.h
index f0cae3e5b..0c8d29b42 100644
--- a/desktop-widgets/diveplanner.h
+++ b/desktop-widgets/diveplanner.h
@@ -85,6 +85,7 @@ slots:
void setBestmixEND(int depth);
void setBackgasBreaks(bool dobreaks);
void disableDecoElements(int mode);
+ void setDiveMode(int mode);
private:
Ui::plannerSettingsWidget ui;
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index 259db6a33..0ce5ef648 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -908,6 +908,7 @@ void MainWindow::setupForAddAndPlan(const char *model)
// setup the dive cylinders
DivePlannerPointsModel::instance()->clear();
DivePlannerPointsModel::instance()->setupCylinders();
+
}
void MainWindow::on_actionReplanDive_triggered()
@@ -951,6 +952,8 @@ void MainWindow::on_actionDivePlanner_triggered()
setupForAddAndPlan("planned dive"); // don't translate, stored in XML file
DivePlannerPointsModel::instance()->setupStartTime();
DivePlannerPointsModel::instance()->createSimpleDive();
+ // plan the dive in the same mode as the currently selected one
+ divePlannerSettingsWidget()->setDiveMode(current_dive->dc.divemode);
DivePictureModel::instance()->updateDivePictures();
divePlannerWidget()->setReplanButton(false);
}