summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2019-09-08 16:55:00 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-09-11 14:55:33 +0100
commit00c902d66ca114836846132ba775e51e8003ab56 (patch)
treef5cfae6d083b052e9914925271252186ec1fbb5d
parentdd423bffb9f248735311ab639639c7b1996d759c (diff)
downloadsubsurface-00c902d66ca114836846132ba775e51e8003ab56.tar.gz
Show correct notes entry when switching on stops
When gas switching only on stops is selected, the notes showed an extra line at the not realized stop depth. This eliminates it. It also makes sure there are no 0 second spurious entries. And gas switching takes more than zero time (otherwise we would have to print a line of zero duration for at the gas switch depth). Reported-by: tormento <turment@gmail.com> Signed-off-by: Robert C. Helling <helling@atdotde.de>
-rw-r--r--core/planner.c8
-rw-r--r--core/plannernotes.c2
-rw-r--r--desktop-widgets/plannerSettings.ui2
3 files changed, 6 insertions, 6 deletions
diff --git a/core/planner.c b/core/planner.c
index b7bc56eab..fd4ed2c36 100644
--- a/core/planner.c
+++ b/core/planner.c
@@ -932,10 +932,6 @@ bool plan(struct deco_state *ds, struct diveplan *diveplan, struct dive *dive, i
if (gi >= 0 && stoplevels[stopidx] <= gaschanges[gi].depth) {
/* We have reached a gas change.
* Record this in the dive plan */
- if (is_final_plan)
- plan_add_segment(diveplan, clock - previous_point_time, depth, current_cylinder, po2, false, divemode);
- previous_point_time = clock;
- stopping = true;
/* Check we need to change cylinder.
* We might not if the cylinder was chosen by the user
@@ -946,6 +942,10 @@ bool plan(struct deco_state *ds, struct diveplan *diveplan, struct dive *dive, i
if (!prefs.switch_at_req_stop ||
!trial_ascent(ds, 0, depth, stoplevels[stopidx - 1], avg_depth, bottom_time,
dive->cylinder[current_cylinder].gasmix, po2, diveplan->surface_pressure / 1000.0, dive, divemode) || get_o2(dive->cylinder[current_cylinder].gasmix) < 160) {
+ if (is_final_plan)
+ plan_add_segment(diveplan, clock - previous_point_time, depth, current_cylinder, po2, false, divemode);
+ stopping = true;
+ previous_point_time = clock;
current_cylinder = gaschanges[gi].gasidx;
gas = dive->cylinder[current_cylinder].gasmix;
#if DEBUG_PLAN & 16
diff --git a/core/plannernotes.c b/core/plannernotes.c
index 8d1f04731..3ce2b6c65 100644
--- a/core/plannernotes.c
+++ b/core/plannernotes.c
@@ -292,7 +292,7 @@ void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool show_d
(!isascent && (gaschange_before || rebreatherchange_before) && nextdp && dp->depth.mm != nextdp->depth.mm) ||
((gaschange_after || rebreatherchange_after) && lastentered) || ((gaschange_after || rebreatherchange_after)&& !isascent) ||
(isascent && (gaschange_after || rebreatherchange_after) && nextdp && dp->depth.mm != nextdp->depth.mm ) ||
- (lastentered && !dp->entered)) {
+ (lastentered && !dp->entered && dp->next->depth.mm == dp->depth.mm)) {
// Print a symbol to indicate whether segment is an ascent, descent, constant depth (user entered) or deco stop
if (isascent)
segmentsymbol = "&#10138;"; // up-right arrow for ascent
diff --git a/desktop-widgets/plannerSettings.ui b/desktop-widgets/plannerSettings.ui
index 6335b9b1c..f22d0db45 100644
--- a/desktop-widgets/plannerSettings.ui
+++ b/desktop-widgets/plannerSettings.ui
@@ -336,7 +336,7 @@
<string/>
</property>
<property name="minimum">
- <number>0</number>
+ <number>1</number>
</property>
<property name="maximum">
<number>9</number>