summaryrefslogtreecommitdiffstats
path: root/profile-widget
diff options
context:
space:
mode:
authorGravatar Stefan Fuchs <sfuchs@gmx.de>2018-03-15 23:12:45 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-03-19 15:44:02 -0700
commitb38eb45b295aaa346ad58e7ba3677456469a2fdd (patch)
treedd014f81296e7a04432191f2885d1db909083952 /profile-widget
parentea7f49031df050ea42a5cb78d8a06bd9c8adfc56 (diff)
downloadsubsurface-b38eb45b295aaa346ad58e7ba3677456469a2fdd.tar.gz
Profile heartrate: Nicer min/max values and tic distance
Correct a bug in finding the minimum heartrate. Use the minimum and maximum heartrate value to set min/max and tic distance for the heartrate axis in the profile. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
Diffstat (limited to 'profile-widget')
-rw-r--r--profile-widget/profilewidget2.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
index b65e76743..4381e6963 100644
--- a/profile-widget/profilewidget2.cpp
+++ b/profile-widget/profilewidget2.cpp
@@ -644,8 +644,20 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
#ifndef SUBSURFACE_MOBILE
if (plotInfo.maxhr) {
- heartBeatAxis->setMinimum(plotInfo.minhr);
- heartBeatAxis->setMaximum(plotInfo.maxhr);
+ int heartBeatAxisMin = lrint(plotInfo.minhr / 5.0 - 0.5) * 5;
+ int heartBeatAxisMax, heartBeatAxisTick;
+ if (plotInfo.maxhr - plotInfo.minhr < 40)
+ heartBeatAxisTick = 10;
+ else if (plotInfo.maxhr - plotInfo.minhr < 80)
+ heartBeatAxisTick = 20;
+ else if (plotInfo.maxhr - plotInfo.minhr < 100)
+ heartBeatAxisTick = 25;
+ else
+ heartBeatAxisTick = 50;
+ for (heartBeatAxisMax = heartBeatAxisMin; heartBeatAxisMax < plotInfo.maxhr; heartBeatAxisMax += heartBeatAxisTick);
+ heartBeatAxis->setMinimum(heartBeatAxisMin);
+ heartBeatAxis->setMaximum(heartBeatAxisMax + 1);
+ heartBeatAxis->setTickInterval(heartBeatAxisTick);
heartBeatAxis->updateTicks(HR_AXIS); // this shows the ticks
}
heartBeatAxis->setVisible(prefs.hrgraph && plotInfo.maxhr);