mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
ea7f49031d
commit
b38eb45b29
2 changed files with 16 additions and 4 deletions
|
@ -439,7 +439,7 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer
|
||||||
maxpressure = pressure;
|
maxpressure = pressure;
|
||||||
if (heartbeat > maxhr)
|
if (heartbeat > maxhr)
|
||||||
maxhr = heartbeat;
|
maxhr = heartbeat;
|
||||||
if (heartbeat < minhr)
|
if (heartbeat && heartbeat < minhr)
|
||||||
minhr = heartbeat;
|
minhr = heartbeat;
|
||||||
|
|
||||||
if (depth > maxdepth)
|
if (depth > maxdepth)
|
||||||
|
@ -469,7 +469,7 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer
|
||||||
if (minpressure > maxpressure)
|
if (minpressure > maxpressure)
|
||||||
minpressure = 0;
|
minpressure = 0;
|
||||||
if (minhr > maxhr)
|
if (minhr > maxhr)
|
||||||
minhr = 0;
|
minhr = maxhr;
|
||||||
|
|
||||||
memset(&pi, 0, sizeof(pi));
|
memset(&pi, 0, sizeof(pi));
|
||||||
pi.maxdepth = maxdepth;
|
pi.maxdepth = maxdepth;
|
||||||
|
|
|
@ -644,8 +644,20 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
|
||||||
|
|
||||||
#ifndef SUBSURFACE_MOBILE
|
#ifndef SUBSURFACE_MOBILE
|
||||||
if (plotInfo.maxhr) {
|
if (plotInfo.maxhr) {
|
||||||
heartBeatAxis->setMinimum(plotInfo.minhr);
|
int heartBeatAxisMin = lrint(plotInfo.minhr / 5.0 - 0.5) * 5;
|
||||||
heartBeatAxis->setMaximum(plotInfo.maxhr);
|
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->updateTicks(HR_AXIS); // this shows the ticks
|
||||||
}
|
}
|
||||||
heartBeatAxis->setVisible(prefs.hrgraph && plotInfo.maxhr);
|
heartBeatAxis->setVisible(prefs.hrgraph && plotInfo.maxhr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue