diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2014-08-04 07:36:07 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-08-04 07:36:07 -0700 |
commit | 825eb019abf1ee7fb477a43f76da573a60fea188 (patch) | |
tree | 0c7b332818b86d26bec86ec71400a4c439d24dd2 | |
parent | 41953c8c46dda9e652927cc27041977f868bcef5 (diff) | |
download | subsurface-825eb019abf1ee7fb477a43f76da573a60fea188.tar.gz |
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>
-rw-r--r-- | dive.c | 2 | ||||
-rw-r--r-- | dive.h | 1 | ||||
-rw-r--r-- | planner.c | 5 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 2 |
4 files changed, 7 insertions, 3 deletions
@@ -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; @@ -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); @@ -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); diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 8f0d1584f..7941ffa31 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -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(); |