diff options
author | Robert C. Helling <helling@atdotde.de> | 2016-03-22 23:44:59 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-03-22 16:16:38 -0700 |
commit | 48007ebc3039525d2ff96dbcf944444009b67537 (patch) | |
tree | d089c4eb8f4bdd3b0b5b931e209874872cb5dc8b | |
parent | e8f8051efe9aba8d5d5a463f13dcd3cfe29ec14b (diff) | |
download | subsurface-48007ebc3039525d2ff96dbcf944444009b67537.tar.gz |
Make the reserve gas units aware
In the planner, for recreational mode, there is a setting indicating
the pressure at which the diver should be back at the surface. This
pressure was hardcoded to bar.
Fixes #1027
[Dirk Hohndel: small modifications, more reasonable step for psi,
more reasonable maxima]
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | desktop-widgets/diveplanner.cpp | 13 | ||||
-rw-r--r-- | qt-models/diveplannermodel.cpp | 5 |
2 files changed, 16 insertions, 2 deletions
diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp index e6fe612e0..f4c53d7e8 100644 --- a/desktop-widgets/diveplanner.cpp +++ b/desktop-widgets/diveplanner.cpp @@ -306,7 +306,6 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f) ui.display_runtime->setChecked(prefs.display_runtime); ui.display_transitions->setChecked(prefs.display_transitions); ui.safetystop->setChecked(prefs.safetystop); - ui.reserve_gas->setValue(prefs.reserve_gas / 1000); ui.bottompo2->setValue(prefs.bottompo2 / 1000.0); ui.decopo2->setValue(prefs.decopo2 / 1000.0); ui.backgasBreaks->setChecked(prefs.doo2breaks); @@ -448,6 +447,18 @@ void PlannerSettingsWidget::settingsChanged() ui.bottomSAC->setValue((double) prefs.bottomsac / 1000.0); ui.decoStopSAC->setValue((double) prefs.decosac / 1000.0); } + if(get_units()->pressure == units::BAR) { + ui.reserve_gas->setSuffix(tr("bar")); + ui.reserve_gas->setSingleStep(1); + ui.reserve_gas->setMaximum(100); + ui.reserve_gas->setValue(prefs.reserve_gas / 1000); + } else { + ui.reserve_gas->setSuffix(tr("psi")); + ui.reserve_gas->setSingleStep(10); + ui.reserve_gas->setMaximum(1500); + ui.reserve_gas->setValue(mbar_to_PSI(prefs.reserve_gas)); + } + ui.bottomSAC->blockSignals(false); ui.decoStopSAC->blockSignals(false); updateUnitsUI(); diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp index f7570fd55..c3996d077 100644 --- a/qt-models/diveplannermodel.cpp +++ b/qt-models/diveplannermodel.cpp @@ -481,7 +481,10 @@ void DivePlannerPointsModel::setSafetyStop(bool value) void DivePlannerPointsModel::setReserveGas(int reserve) { - prefs.reserve_gas = reserve * 1000; + if (prefs.units.pressure == units::BAR) + prefs.reserve_gas = reserve * 1000; + else + prefs.reserve_gas = psi_to_mbar(reserve); emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1)); } |