Planner: show mean depth

Almost invisible, mostly looking like an odd bug in the profile code,
there was a tiny red line at depth 0 in the planned profile. Turns out
that was the missing mean depth. We didn't populate enough data in the
dive computer of the dive we generated from the plan (and the length of
the depth line was incorrectly determined by the duration of the dive
instead of the duration stored in the dive computer).

Fixes #570

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-08-04 07:36:07 -07:00
parent 41953c8c46
commit 825eb019ab
4 changed files with 7 additions and 3 deletions

2
dive.c
View file

@ -542,7 +542,7 @@ static void update_temperature(temperature_t *temperature, int new)
*
* This ignores any surface time in the middle of the dive.
*/
static void fixup_dc_duration(struct divecomputer *dc)
void fixup_dc_duration(struct divecomputer *dc)
{
int duration, i;
int lasttime, lastdepth, depthtime;

1
dive.h
View file

@ -614,6 +614,7 @@ extern bool has_hr_data(struct divecomputer *dc);
extern void sort_table(struct dive_table *table);
extern struct dive *fixup_dive(struct dive *dive);
extern void fixup_dc_duration(struct divecomputer *dc);
extern int dive_getUniqID(struct dive *d);
extern unsigned int dc_airtemp(struct divecomputer *dc);
extern unsigned int dc_watertemp(struct divecomputer *dc);

View file

@ -924,10 +924,13 @@ void plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool
}
}
/* We made it to the surface */
/* We made it to the surface
* Create the final dive, add the plan to the notes and fixup some internal
* data that we need to be there when plotting the dive */
plan_add_segment(diveplan, clock - previous_point_time, 0, gas, po2, false);
create_dive_from_plan(diveplan, is_planner);
add_plan_to_notes(diveplan, &displayed_dive, show_disclaimer);
fixup_dc_duration(&displayed_dive.dc);
free(stoplevels);
free(gaschanges);

View file

@ -481,7 +481,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
rulerItem->setPlotInfo(pInfo);
meanDepth->setVisible(prefs.show_average_depth);
meanDepth->setMeanDepth(pInfo.meandepth);
meanDepth->setLine(0, 0, timeAxis->posAtValue(displayed_dive.duration.seconds), 0);
meanDepth->setLine(0, 0, timeAxis->posAtValue(currentdc->duration.seconds), 0);
Animations::moveTo(meanDepth,3, profileYAxis->posAtValue(pInfo.meandepth));
dataModel->emitDataChanged();