[PATCH] Fix inaccurate weight and temperature display in dive list

subsurface at henrik.synth.no subsurface at henrik.synth.no
Tue May 14 00:45:01 PDT 2013


From: Henrik Brautaset Aronsen <subsurface at henrik.synth.no>

A nonexisting temperature (mkelvin==0) was displayed as -273°C.
Weight was always displayed with an extra 500 grams/0.5 lbs.

Signed-off-by: Henrik Brautaset Aronsen <subsurface at henrik.synth.no>
---
 qt-ui/models.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index 0b933ae..4c45f14 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -540,6 +540,9 @@ QString DiveItem::displayTemperature() const
 {
 	QString str;
 
+	if (!dive->watertemp.mkelvin)
+		return str;
+
 	if (get_units()->temperature == units::CELSIUS)
 		str = QString::number(mkelvin_to_C(dive->watertemp.mkelvin), 'f', 1);
 	else
@@ -567,9 +570,9 @@ QString DiveItem::displayWeight() const
 	if (get_units()->weight == units::KG) {
 		int gr = weight() % 1000;
 		int kg = weight() / 1000;
-		str = QString("%1.%2").arg(kg).arg((unsigned)(gr + 500) / 100);
+		str = QString("%1.%2").arg(kg).arg((unsigned)(gr) / 100);
 	} else {
-		str = QString("%1").arg((unsigned)(grams_to_lbs(weight()) + 0.5));
+		str = QString("%1").arg((unsigned)(grams_to_lbs(weight())));
 	}
 
 	return str;
-- 
1.8.2.2



More information about the subsurface mailing list