summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--planner.c2
-rw-r--r--pref.h1
-rw-r--r--qt-ui/diveplanner.cpp10
-rw-r--r--qt-ui/diveplanner.h1
-rw-r--r--qt-ui/plannerSettings.ui28
-rw-r--r--subsurfacestartup.c1
6 files changed, 33 insertions, 10 deletions
diff --git a/planner.c b/planner.c
index b93c9758a..05e19d0e2 100644
--- a/planner.c
+++ b/planner.c
@@ -905,7 +905,7 @@ int plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool s
bottom_time = clock = previous_point_time = displayed_dive.dc.sample[displayed_dive.dc.samples - 1].time.seconds;
gi = gaschangenr - 1;
if(prefs.recreational_mode) {
- bool safety_stop = true;
+ bool safety_stop = prefs.safetystop;
// How long can we stay at the current depth and still directly ascent to the surface?
while (trial_ascent(depth, 0, avg_depth, bottom_time, tissue_tolerance, &displayed_dive.cylinder[current_cylinder].gasmix,
po2, diveplan->surface_pressure / 1000.0)) {
diff --git a/pref.h b/pref.h
index 56fc79b95..14cc57cac 100644
--- a/pref.h
+++ b/pref.h
@@ -79,6 +79,7 @@ struct preferences {
bool display_duration;
bool display_transitions;
bool recreational_mode;
+ bool safetystop;
int bottomsac;
int decosac;
int o2consumption; // ml per min
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 00a4113ca..4f264030f 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -394,6 +394,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
prefs.display_runtime = s.value("display_runtime", prefs.display_runtime).toBool();
prefs.display_transitions = s.value("display_transitions", prefs.display_transitions).toBool();
prefs.recreational_mode = s.value("recreational_mode", prefs.recreational_mode).toBool();
+ prefs.safetystop = s.value("safetystop", prefs.safetystop).toBool();
prefs.ascrate75 = s.value("ascrate75", prefs.ascrate75).toInt();
prefs.ascrate50 = s.value("ascrate50", prefs.ascrate50).toInt();
prefs.ascratestops = s.value("ascratestops", prefs.ascratestops).toInt();
@@ -416,6 +417,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
ui.display_runtime->setChecked(prefs.display_runtime);
ui.display_transitions->setChecked(prefs.display_transitions);
ui.recreational_mode->setChecked(prefs.recreational_mode);
+ ui.safetystop->setChecked(prefs.safetystop);
ui.bottompo2->setValue(prefs.bottompo2 / 1000.0);
ui.decopo2->setValue(prefs.decopo2 / 1000.0);
ui.backgasBreaks->setChecked(prefs.doo2breaks);
@@ -429,6 +431,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
connect(ui.display_duration, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayDuration(bool)));
connect(ui.display_runtime, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayRuntime(bool)));
connect(ui.display_transitions, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayTransitions(bool)));
+ connect(ui.safetystop, SIGNAL(toggled(bool)), plannerModel, SLOT(setSafetyStop(bool)));
connect(ui.recreational_mode, SIGNAL(toggled(bool)), plannerModel, SLOT(setRecreationalMode(bool)));
connect(ui.ascRate75, SIGNAL(valueChanged(int)), this, SLOT(setAscRate75(int)));
connect(ui.ascRate75, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged()));
@@ -478,6 +481,7 @@ PlannerSettingsWidget::~PlannerSettingsWidget()
s.setValue("display_runtime", prefs.display_runtime);
s.setValue("display_transitions", prefs.display_transitions);
s.setValue("recreational_mode", prefs.recreational_mode);
+ s.setValue("safetystop", prefs.safetystop);
s.setValue("ascrate75", prefs.ascrate75);
s.setValue("ascrate50", prefs.ascrate50);
s.setValue("ascratestops", prefs.ascratestops);
@@ -871,6 +875,12 @@ void DivePlannerPointsModel::setRecreationalMode(bool value)
emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS -1));
}
+void DivePlannerPointsModel::setSafetyStop(bool value)
+{
+ prefs.safetystop = value;
+ emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS -1));
+}
+
void DivePlannerPointsModel::setDropStoneMode(bool value)
{
prefs.drop_stone_mode = value;
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index eed481c04..a4752b502 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -83,6 +83,7 @@ slots:
void setDisplayDuration(bool value);
void setDisplayTransitions(bool value);
void setRecreationalMode(bool value);
+ void setSafetyStop(bool value);
void savePlan();
void saveDuplicatePlan();
void remove(const QModelIndex &index);
diff --git a/qt-ui/plannerSettings.ui b/qt-ui/plannerSettings.ui
index 09f019e06..961dce914 100644
--- a/qt-ui/plannerSettings.ui
+++ b/qt-ui/plannerSettings.ui
@@ -262,21 +262,21 @@
<property name="spacing">
<number>2</number>
</property>
- <item row="2" column="1">
+ <item row="3" column="1">
<widget class="QLabel" name="label_16">
<property name="text">
<string>GF high</string>
</property>
</widget>
</item>
- <item row="5" column="1" colspan="2">
+ <item row="6" column="1" colspan="2">
<widget class="QCheckBox" name="backgasBreaks">
<property name="text">
<string>Plan backgas breaks</string>
</property>
</widget>
</item>
- <item row="2" column="2">
+ <item row="3" column="2">
<widget class="QSpinBox" name="gfhigh">
<property name="suffix">
<string>%</string>
@@ -289,14 +289,14 @@
</property>
</widget>
</item>
- <item row="4" column="1" colspan="2">
+ <item row="5" column="1" colspan="2">
<widget class="QCheckBox" name="lastStop">
<property name="text">
<string>Last stop at 6m</string>
</property>
</widget>
</item>
- <item row="6" column="1">
+ <item row="7" column="1">
<widget class="QComboBox" name="rebreathermode">
<property name="currentText">
<string/>
@@ -306,7 +306,7 @@
</property>
</widget>
</item>
- <item row="1" column="2">
+ <item row="2" column="2">
<widget class="QSpinBox" name="gflow">
<property name="suffix">
<string>%</string>
@@ -319,14 +319,14 @@
</property>
</widget>
</item>
- <item row="3" column="1" colspan="2">
+ <item row="4" column="1" colspan="2">
<widget class="QCheckBox" name="drop_stone_mode">
<property name="text">
<string>Drop to first depth</string>
</property>
</widget>
</item>
- <item row="7" column="1">
+ <item row="8" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -339,7 +339,7 @@
</property>
</spacer>
</item>
- <item row="1" column="1">
+ <item row="2" column="1">
<widget class="QLabel" name="label_15">
<property name="text">
<string>GF low</string>
@@ -353,6 +353,16 @@
</property>
</widget>
</item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="safetystop">
+ <property name="text">
+ <string>Safety stop</string>
+ </property>
+ <property name="tristate">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
diff --git a/subsurfacestartup.c b/subsurfacestartup.c
index 09858f923..a5415c7c0 100644
--- a/subsurfacestartup.c
+++ b/subsurfacestartup.c
@@ -51,6 +51,7 @@ struct preferences default_prefs = {
.display_duration = true,
.display_transitions = true,
.recreational_mode = false,
+ .safetystop = true,
.bottomsac = 20000,
.decosac = 17000,
.o2consumption = 720,