summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-01-19 21:52:08 +1200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-01-19 21:52:08 +1200
commit86c961614bfa8ab9057319ea5f22816351a7f61a (patch)
treedbec4a7d0bba3c6554a7a86ff45ce3fb840253c8
parentd6499cc32a0a7486aee3156bfa98542bc33618c1 (diff)
downloadsubsurface-86c961614bfa8ab9057319ea5f22816351a7f61a.tar.gz
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>
-rw-r--r--profile.c3
-rw-r--r--profile.h2
-rw-r--r--qt-ui/profile/profilewidget2.cpp2
3 files changed, 4 insertions, 3 deletions
diff --git a/profile.c b/profile.c
index 05e84cd73..8246a961b 100644
--- a/profile.c
+++ b/profile.c
@@ -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;
diff --git a/profile.h b/profile.h
index 0ae9a8f84..726d10573 100644
--- a/profile.h
+++ b/profile.h
@@ -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);
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 850f357cf..05553216d 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -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);