Consistently show dive duration based on preferences

We now respect the settings in the preferences and also only show
the duration as minutes and seconds if the dive is a free dive.

Fixes #361
Fixes #362

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2017-05-06 17:43:32 -07:00
parent 876b479d69
commit 92d24a2912
3 changed files with 15 additions and 25 deletions

View file

@ -342,22 +342,8 @@ int DiveItem::countPhotos(dive *dive) const
QString DiveItem::displayDuration() const
{
int hrs, mins, fullmins, secs;
struct dive *dive = get_dive_by_uniq_id(diveId);
mins = (dive->duration.seconds + 59) / 60;
fullmins = dive->duration.seconds / 60;
secs = dive->duration.seconds - 60 * fullmins;
hrs = mins / 60;
mins -= hrs * 60;
QString displayTime;
if (hrs)
displayTime = QString("%1:%2").arg(hrs).arg(mins, 2, 10, QChar('0'));
else if (mins < 15 || dive->dc.divemode == FREEDIVE)
displayTime = QString("%1m%2s").arg(fullmins).arg(secs, 2, 10, QChar('0'));
else
displayTime = QString("%1").arg(mins);
return displayTime;
return get_dive_duration_string(dive->duration.seconds, ":", "m", "s", dive->dc.divemode == FREEDIVE);
}
QString DiveItem::displayTemperature() const