Disable o2 break option if last stop is not at 6m/20ft

Disable the possibility to plan o2 breaks of option
"last stop at 6m/20ft" is not set.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
This commit is contained in:
Stefan Fuchs 2017-11-02 21:00:54 +01:00 committed by Robert C. Helling
parent 3ae0b5cbdd
commit ac25b238dd
3 changed files with 19 additions and 1 deletions

View file

@ -1000,7 +1000,7 @@ bool plan(struct diveplan *diveplan, struct dive *dive, int timestep, struct dec
o2breaking = false; o2breaking = false;
stop_cylinder = current_cylinder; 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 /* 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. * backgas. This could be customized if there were demand.
*/ */

View file

@ -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() void DivePlannerWidget::printDecoPlan()
{ {
MainWindow::instance()->printPlan(); MainWindow::instance()->printPlan();
@ -351,6 +366,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
ui.buehlmann_deco->setChecked(prefs.planner_deco_mode == BUEHLMANN); ui.buehlmann_deco->setChecked(prefs.planner_deco_mode == BUEHLMANN);
ui.vpmb_deco->setChecked(prefs.planner_deco_mode == VPMB); ui.vpmb_deco->setChecked(prefs.planner_deco_mode == VPMB);
disableDecoElements((int) prefs.planner_deco_mode); disableDecoElements((int) prefs.planner_deco_mode);
disableBackgasBreaks(prefs.last_stop);
// should be the same order as in dive_comp_type! // should be the same order as in dive_comp_type!
rebreather_modes << tr("Open circuit") << tr("CCR") << tr("pSCR"); 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.vpmb_deco, SIGNAL(clicked()), modeMapper, SLOT(map()));
connect(ui.lastStop, SIGNAL(toggled(bool)), plannerModel, SLOT(setLastStop6m(bool))); 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.verbatim_plan, SIGNAL(toggled(bool)), plannerModel, SLOT(setVerbatim(bool)));
connect(ui.display_duration, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayDuration(bool))); 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_runtime, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayRuntime(bool)));

View file

@ -86,6 +86,7 @@ slots:
void setBestmixEND(int depth); void setBestmixEND(int depth);
void setBackgasBreaks(bool dobreaks); void setBackgasBreaks(bool dobreaks);
void disableDecoElements(int mode); void disableDecoElements(int mode);
void disableBackgasBreaks(bool enabled);
void setDiveMode(int mode); void setDiveMode(int mode);
private: private: