aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Rick Walsh <rickmwalsh@gmail.com>2015-06-22 21:48:42 +1000
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-26 06:14:24 -0700
commit425020d2debd770006594e715b6fed73032a4ea2 (patch)
tree006e414efbed04725533af740f52bfa584437721
parentcb1b6a3d302070febf09d8963585ac445d3277f4 (diff)
downloadsubsurface-425020d2debd770006594e715b6fed73032a4ea2.tar.gz
Add only switch at required stop option
Add the option to only switch at required stop to the planner UI. This is not actually used yet. Signed-off-by: Rick Walsh <rickmwalsh@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--pref.h1
-rw-r--r--qt-models/diveplannermodel.cpp6
-rw-r--r--qt-models/diveplannermodel.h1
-rw-r--r--qt-ui/diveplanner.cpp4
-rw-r--r--qt-ui/plannerSettings.ui18
-rw-r--r--subsurfacestartup.c1
6 files changed, 27 insertions, 4 deletions
diff --git a/pref.h b/pref.h
index d70e009ce..03b28a98c 100644
--- a/pref.h
+++ b/pref.h
@@ -92,6 +92,7 @@ struct preferences {
bool display_transitions;
bool recreational_mode;
bool safetystop;
+ bool switch_at_req_stop;
int reserve_gas;
int min_switch_duration; // seconds
int bottomsac;
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp
index a4ca14715..adbcdba9a 100644
--- a/qt-models/diveplannermodel.cpp
+++ b/qt-models/diveplannermodel.cpp
@@ -490,6 +490,12 @@ void DivePlannerPointsModel::setDropStoneMode(bool value)
emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1));
}
+void DivePlannerPointsModel::setSwitchAtReqStop(bool value)
+{
+ prefs.switch_at_req_stop = value;
+ emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1));
+}
+
void DivePlannerPointsModel::setMinSwitchDuration(int duration)
{
prefs.min_switch_duration = duration * 60;
diff --git a/qt-models/diveplannermodel.h b/qt-models/diveplannermodel.h
index 883103f22..422499084 100644
--- a/qt-models/diveplannermodel.h
+++ b/qt-models/diveplannermodel.h
@@ -90,6 +90,7 @@ slots:
void emitDataChanged();
void setRebreatherMode(int mode);
void setReserveGas(int reserve);
+ void setSwitchAtReqStop(bool value);
void setMinSwitchDuration(int duration);
signals:
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 08ceba5db..8b0e93cd8 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -254,6 +254,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
prefs.bottompo2 = s.value("bottompo2", prefs.bottompo2).toInt();
prefs.decopo2 = s.value("decopo2", prefs.decopo2).toInt();
prefs.doo2breaks = s.value("doo2breaks", prefs.doo2breaks).toBool();
+ prefs.switch_at_req_stop = s.value("switch_at_req_stop", prefs.switch_at_req_stop).toBool();
prefs.min_switch_duration = s.value("min_switch_duration", prefs.min_switch_duration).toInt();
prefs.drop_stone_mode = s.value("drop_stone_mode", prefs.drop_stone_mode).toBool();
prefs.bottomsac = s.value("bottomsac", prefs.bottomsac).toInt();
@@ -275,6 +276,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
ui.decopo2->setValue(prefs.decopo2 / 1000.0);
ui.backgasBreaks->setChecked(prefs.doo2breaks);
ui.drop_stone_mode->setChecked(prefs.drop_stone_mode);
+ ui.switch_at_req_stop->setChecked(prefs.switch_at_req_stop);
ui.min_switch_duration->setValue(prefs.min_switch_duration / 60);
// should be the same order as in dive_comp_type!
rebreater_modes << tr("Open circuit") << tr("CCR") << tr("pSCR");
@@ -308,6 +310,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
connect(ui.gfhigh, SIGNAL(editingFinished()), plannerModel, SLOT(triggerGFHigh()));
connect(ui.gflow, SIGNAL(editingFinished()), plannerModel, SLOT(triggerGFLow()));
connect(ui.backgasBreaks, SIGNAL(toggled(bool)), this, SLOT(setBackgasBreaks(bool)));
+ connect(ui.switch_at_req_stop, SIGNAL(toggled(bool)), plannerModel, SLOT(setSwitchAtReqStop(bool)));
connect(ui.min_switch_duration, SIGNAL(valueChanged(int)), plannerModel, SLOT(setMinSwitchDuration(int)));
connect(ui.rebreathermode, SIGNAL(currentIndexChanged(int)), plannerModel, SLOT(setRebreatherMode(int)));
connect(plannerModel, SIGNAL(recreationChanged(bool)), this, SLOT(disableDecoElements(bool)));
@@ -350,6 +353,7 @@ PlannerSettingsWidget::~PlannerSettingsWidget()
s.setValue("decopo2", prefs.decopo2);
s.setValue("doo2breaks", prefs.doo2breaks);
s.setValue("drop_stone_mode", prefs.drop_stone_mode);
+ s.setValue("switch_at_req_stop", prefs.switch_at_req_stop);
s.setValue("min_switch_duration", prefs.min_switch_duration);
s.setValue("bottomsac", prefs.bottomsac);
s.setValue("decosac", prefs.decosac);
diff --git a/qt-ui/plannerSettings.ui b/qt-ui/plannerSettings.ui
index 9ca603b28..55ca83a9b 100644
--- a/qt-ui/plannerSettings.ui
+++ b/qt-ui/plannerSettings.ui
@@ -308,7 +308,7 @@
</property>
</widget>
</item>
- <item row="11" column="1">
+ <item row="12" column="1">
<widget class="QComboBox" name="rebreathermode">
<property name="currentText">
<string/>
@@ -338,7 +338,7 @@
</property>
</widget>
</item>
- <item row="12" column="1">
+ <item row="13" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -401,14 +401,24 @@
</property>
</widget>
</item>
- <item row="10" column="1">
+ <item row="10" column="1" colspan="2">
+ <widget class="QCheckBox" name="switch_at_req_stop">
+ <property name="toolTip">
+ <string>Postpone gas change if a stop is not required</string>
+ </property>
+ <property name="text">
+ <string>Only switch at required stops</string>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="1">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Min. switch duration</string>
</property>
</widget>
</item>
- <item row="10" column="2">
+ <item row="11" column="2">
<widget class="QSpinBox" name="min_switch_duration">
<property name="suffix">
<string>min</string>
diff --git a/subsurfacestartup.c b/subsurfacestartup.c
index 655a1a5d9..f5b0e7b4b 100644
--- a/subsurfacestartup.c
+++ b/subsurfacestartup.c
@@ -47,6 +47,7 @@ struct preferences default_prefs = {
.decopo2 = 1600,
.doo2breaks = false,
.drop_stone_mode = false,
+ .switch_at_req_stop = false,
.min_switch_duration = 60,
.last_stop = false,
.verbatim_plan = false,