aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/planner.c2
-rw-r--r--desktop-widgets/diveplanner.cpp17
-rw-r--r--desktop-widgets/diveplanner.h1
3 files changed, 19 insertions, 1 deletions
diff --git a/core/planner.c b/core/planner.c
index 5b424bac0..ba7ea8eb0 100644
--- a/core/planner.c
+++ b/core/planner.c
@@ -1000,7 +1000,7 @@ bool plan(struct diveplan *diveplan, struct dive *dive, int timestep, struct dec
o2breaking = false;
stop_cylinder = current_cylinder;
- if (prefs.doo2breaks) {
+ if (prefs.doo2breaks && prefs.last_stop) {
/* The backgas breaks option limits time on oxygen to 12 minutes, followed by 6 minutes on
* backgas. This could be customized if there were demand.
*/
diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp
index 38d41d59a..008d39dd5 100644
--- a/desktop-widgets/diveplanner.cpp
+++ b/desktop-widgets/diveplanner.cpp
@@ -318,6 +318,21 @@ void PlannerSettingsWidget::disableDecoElements(int mode)
}
}
+void PlannerSettingsWidget::disableBackgasBreaks(bool enabled)
+{
+ if (enabled) {
+ ui.backgasBreaks->setDisabled(false);
+ ui.backgasBreaks->blockSignals(true);
+ ui.backgasBreaks->setChecked(prefs.doo2breaks);
+ ui.backgasBreaks->blockSignals(false);
+ } else {
+ ui.backgasBreaks->setDisabled(true);
+ ui.backgasBreaks->blockSignals(true);
+ ui.backgasBreaks->setChecked(false);
+ ui.backgasBreaks->blockSignals(false);
+ }
+}
+
void DivePlannerWidget::printDecoPlan()
{
MainWindow::instance()->printPlan();
@@ -351,6 +366,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
ui.buehlmann_deco->setChecked(prefs.planner_deco_mode == BUEHLMANN);
ui.vpmb_deco->setChecked(prefs.planner_deco_mode == VPMB);
disableDecoElements((int) prefs.planner_deco_mode);
+ disableBackgasBreaks(prefs.last_stop);
// should be the same order as in dive_comp_type!
rebreather_modes << tr("Open circuit") << tr("CCR") << tr("pSCR");
@@ -367,6 +383,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
connect(ui.vpmb_deco, SIGNAL(clicked()), modeMapper, SLOT(map()));
connect(ui.lastStop, SIGNAL(toggled(bool)), plannerModel, SLOT(setLastStop6m(bool)));
+ connect(ui.lastStop, SIGNAL(toggled(bool)), this, SLOT(disableBackgasBreaks(bool)));
connect(ui.verbatim_plan, SIGNAL(toggled(bool)), plannerModel, SLOT(setVerbatim(bool)));
connect(ui.display_duration, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayDuration(bool)));
connect(ui.display_runtime, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayRuntime(bool)));
diff --git a/desktop-widgets/diveplanner.h b/desktop-widgets/diveplanner.h
index 59884534c..955fc690a 100644
--- a/desktop-widgets/diveplanner.h
+++ b/desktop-widgets/diveplanner.h
@@ -86,6 +86,7 @@ slots:
void setBestmixEND(int depth);
void setBackgasBreaks(bool dobreaks);
void disableDecoElements(int mode);
+ void disableBackgasBreaks(bool enabled);
void setDiveMode(int mode);
private: