From 7e82205e9b7b14e960dc1e83fcf6ef927e746fba Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Wed, 2 Sep 2020 11:10:51 +0200 Subject: Planner: Properly initialize salinity When the dive has no explicity salinity, our conversion between pressure and depth assumed salt water. Make this explicity by using the corresponding macro. When the planner starts and no salinity is set explicity, set the water type chooser to salt water to reflect our default assumption. Signed-off-by: Robert C. Helling --- CHANGELOG.md | 1 + core/dive.c | 2 +- desktop-widgets/mainwindow.cpp | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d64136a2..c3b746606 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +planner: properly initialize salinity desktop: add an "Edit Gas Change" right-click option [#2910] core: add support for Shearwater Peregrine (requires firmware V79 or newer) core: fix renumbering of imported dives [#2731] diff --git a/core/dive.c b/core/dive.c index d2a4ea23c..6bed5966a 100644 --- a/core/dive.c +++ b/core/dive.c @@ -3729,7 +3729,7 @@ double depth_to_atm(int depth, const struct dive *dive) int rel_mbar_to_depth(int mbar, const struct dive *dive) { int cm; - double specific_weight = 1.03 * 0.981; + double specific_weight = SEAWATER_SALINITY * 0.981 / 10000.0; if (dive->dc.salinity) specific_weight = dive->dc.salinity / 10000.0 * 0.981; /* whole mbar gives us cm precision */ diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 87a7e1d06..5c151849f 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -895,6 +895,8 @@ void MainWindow::on_actionDivePlanner_triggered() divePlannerSettingsWidget->setBailoutVisibility(current_dive->dc.divemode); if (current_dive->salinity) divePlannerWidget->setSalinity(current_dive->salinity); + else // No salinity means salt water + divePlannerWidget->setSalinity(SEAWATER_SALINITY); } divePlannerWidget->setReplanButton(false); } -- cgit v1.2.3-70-g09d2