From d65f2f422cfff2c1adcc43ded7efb7e78882a841 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 6 Nov 2022 17:10:37 +0100 Subject: [PATCH] planner: access divemode (a.k.a. rebreathermode) from model The mode was accessed via the global `displayed_dive`. In an effort to remove globals, access it via the DivePlannerPointsModel instead. Signed-off-by: Berthold Stoeger --- desktop-widgets/diveplanner.cpp | 11 +++++------ qt-models/diveplannermodel.cpp | 5 +++++ qt-models/diveplannermodel.h | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp index 246d0ab18..4c31b1310 100644 --- a/desktop-widgets/diveplanner.cpp +++ b/desktop-widgets/diveplanner.cpp @@ -214,6 +214,7 @@ void DivePlannerWidget::customSalinityChanged(double density) void PlannerSettingsWidget::disableDecoElements(int mode) { + divemode_t rebreathermode = DivePlannerPointsModel::instance()->getRebreatherMode(); if (mode == RECREATIONAL) { ui.label_gflow->setDisabled(false); ui.label_gfhigh->setDisabled(false); @@ -248,8 +249,7 @@ void PlannerSettingsWidget::disableDecoElements(int mode) ui.sacfactor->blockSignals(false); ui.problemsolvingtime->blockSignals(false); ui.display_variations->setDisabled(true); - } - else if (mode == VPMB) { + } else if (mode == VPMB) { ui.label_gflow->setDisabled(true); ui.label_gfhigh->setDisabled(true); ui.gflow->setDisabled(true); @@ -266,7 +266,7 @@ void PlannerSettingsWidget::disableDecoElements(int mode) ui.backgasBreaks->setChecked(false); ui.backgasBreaks->blockSignals(false); } - ui.bailout->setDisabled(!(displayed_dive.dc.divemode == CCR || displayed_dive.dc.divemode == PSCR)); + ui.bailout->setDisabled(!(rebreathermode == CCR || rebreathermode == PSCR)); ui.bottompo2->setDisabled(false); ui.decopo2->setDisabled(false); ui.safetystop->setDisabled(true); @@ -283,8 +283,7 @@ void PlannerSettingsWidget::disableDecoElements(int mode) ui.sacfactor->setValue(PlannerShared::sacfactor()); ui.problemsolvingtime->setValue(prefs.problemsolvingtime); ui.display_variations->setDisabled(false); - } - else if (mode == BUEHLMANN) { + } else if (mode == BUEHLMANN) { ui.label_gflow->setDisabled(false); ui.label_gfhigh->setDisabled(false); ui.gflow->setDisabled(false); @@ -301,7 +300,7 @@ void PlannerSettingsWidget::disableDecoElements(int mode) ui.backgasBreaks->setChecked(false); ui.backgasBreaks->blockSignals(false); } - ui.bailout->setDisabled(!(displayed_dive.dc.divemode == CCR || displayed_dive.dc.divemode == PSCR)); + ui.bailout->setDisabled(!(rebreathermode == CCR || rebreathermode == PSCR)); ui.bottompo2->setDisabled(false); ui.decopo2->setDisabled(false); ui.safetystop->setDisabled(true); diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp index 93fcf4368..1a4fd91dd 100644 --- a/qt-models/diveplannermodel.cpp +++ b/qt-models/diveplannermodel.cpp @@ -545,6 +545,11 @@ void DivePlannerPointsModel::setRebreatherMode(int mode) emitDataChanged(); } +divemode_t DivePlannerPointsModel::getRebreatherMode() const +{ + return d->dc.divemode; +} + void DivePlannerPointsModel::setVpmbConservatism(int level) { if (diveplan.vpmb_conservatism != level) { diff --git a/qt-models/diveplannermodel.h b/qt-models/diveplannermodel.h index abe066da1..13a647bc0 100644 --- a/qt-models/diveplannermodel.h +++ b/qt-models/diveplannermodel.h @@ -7,6 +7,7 @@ #include #include "core/deco.h" +#include "core/divemode.h" #include "core/planner.h" #include "qt-models/cylindermodel.h" @@ -62,6 +63,7 @@ public: void loadFromDive(dive *d, int dcNr); void addStop(int millimeters, int seconds); + divemode_t getRebreatherMode() const; public slots: void addDefaultStop();