diff options
-rw-r--r-- | profile.c | 12 | ||||
-rw-r--r-- | profile.h | 2 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 2 |
3 files changed, 12 insertions, 4 deletions
@@ -442,9 +442,10 @@ static void check_setpoint_events(struct dive *dive, struct divecomputer *dc, st } -struct plot_info calculate_max_limits_new(struct dive *dive) +struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer *given_dc) { struct divecomputer *dc = &(dive->dc); + bool seen = false; static struct plot_info pi; int maxdepth = dive->maxdepth.mm; int maxtime = 0; @@ -465,6 +466,8 @@ struct plot_info calculate_max_limits_new(struct dive *dive) /* Then do all the samples from all the dive computers */ do { + if (dc == given_dc) + seen = true; int i = dc->samples; int lastdepth = 0; struct sample *s = dc->sample; @@ -497,7 +500,12 @@ struct plot_info calculate_max_limits_new(struct dive *dive) lastdepth = depth; s++; } - } while ((dc = dc->next) != NULL); + dc = dc->next; + if (dc == NULL && !seen) { + dc = given_dc; + seen = true; + } + } while (dc != NULL); if (minpressure > maxpressure) minpressure = 0; @@ -68,7 +68,7 @@ struct ev_select { bool plot_ev; }; -struct plot_info calculate_max_limits_new(struct dive *dive); +struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer *given_dc); 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); diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 141c7e978..ea2a42d49 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -535,7 +535,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); + plotInfo = calculate_max_limits_new(&displayed_dive, currentdc); create_plot_info_new(&displayed_dive, currentdc, &plotInfo, !shouldCalculateMaxDepth); if (shouldCalculateMaxTime) maxtime = get_maxtime(&plotInfo); |