Actually walk all dive computers, don't just claim to do so

If the first dive computer had pressure samples, but the second one (and
no higher one) did, then we would draw a flat horizontal line for the tank
pressure graph (but lable it with the correct pressures). This routine
that is hunting for the actual maxima and minima does have to really go
through all dive computers, not just "this one and up".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-01-19 21:52:08 +12:00
parent d6499cc32a
commit 86c961614b
3 changed files with 4 additions and 3 deletions

View file

@ -442,8 +442,9 @@ static void check_setpoint_events(struct dive *dive, struct divecomputer *dc, st
}
struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer *dc)
struct plot_info calculate_max_limits_new(struct dive *dive)
{
struct divecomputer *dc = &dive->dc;
static struct plot_info pi;
int maxdepth = dive->maxdepth.mm;
int maxtime = 0;

View file

@ -68,7 +68,7 @@ struct ev_select {
bool plot_ev;
};
struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer *dc);
struct plot_info calculate_max_limits_new(struct dive *dive);
void compare_samples(struct plot_data *e1, struct plot_data *e2, char *buf, int bufsize, int sum);
struct plot_data *populate_plot_entries(struct dive *dive, struct divecomputer *dc, struct plot_info *pi);
struct plot_info *analyze_plot_info(struct plot_info *pi);

View file

@ -518,7 +518,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
* so I'll *not* calculate everything if something is not being
* shown.
*/
plotInfo = calculate_max_limits_new(&displayed_dive, currentdc);
plotInfo = calculate_max_limits_new(&displayed_dive);
create_plot_info_new(&displayed_dive, currentdc, &plotInfo, !shouldCalculateMaxDepth);
if (shouldCalculateMaxTime)
maxtime = get_maxtime(&plotInfo);