summaryrefslogtreecommitdiffstats
path: root/qt-gui.cpp
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-06 20:36:37 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-06 20:38:38 -0700
commitb75a89aa868d39be29d2bb220a6e0c50d5a2b0ac (patch)
treed19b9490a152cc83ea7efecd8e4692c597720f9a /qt-gui.cpp
parent1a8239a240fe14e983da6d9a6048e2fb154ee053 (diff)
downloadsubsurface-b75a89aa868d39be29d2bb220a6e0c50d5a2b0ac.tar.gz
Start populating the maintab Dive Info widget
Establish some useful helpers and use them when updating the values. One of the helpers (from statistics.c) puzzlingly doesn't link - so that's ifdefed out. Also had to re-arrange the settings reading code (it came too late) and to extract the expanding code of the top dive from the settings reading code (as it had no business being there to begin with). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-gui.cpp')
-rw-r--r--qt-gui.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/qt-gui.cpp b/qt-gui.cpp
index a4801f760..1e2c86e69 100644
--- a/qt-gui.cpp
+++ b/qt-gui.cpp
@@ -133,5 +133,59 @@ void set_dc_nickname(struct dive *dive)
/* needs Qt implementation */
}
+QString get_depth_string(depth_t depth, bool showunit)
+{
+ if (prefs.units.length == units::METERS) {
+ double meters = depth.mm / 1000.0;
+ return QString("%1%2").arg(meters, 0, 'f', meters >= 20.0 ? 0 : 1 ).arg(showunit ? _("m") : "");
+ } else {
+ double feet = mm_to_feet(depth.mm);
+ return QString("%1%2").arg(feet, 0, 'f', 1). arg(showunit ? _("ft") : "");
+ }
+}
+
+QString get_weight_string(weight_t weight, bool showunit)
+{
+ if (prefs.units.weight == units::KG) {
+ double kg = weight.grams / 1000.0;
+ return QString("%1%2").arg(kg, 0, 'f', kg >= 20.0 ? 0 : 1 ).arg(showunit ? _("kg") : "");
+ } else {
+ double lbs = grams_to_lbs(weight.grams);
+ return QString("%1%2").arg(lbs, 0, 'f', lbs >= 40.0 ? 0 : 1 ).arg(showunit ? _("lbs") : "");
+ }
+}
+
+QString get_temperature_string(temperature_t temp, bool showunit)
+{
+ if (prefs.units.temperature == units::CELSIUS) {
+ double celsius = mkelvin_to_C(temp.mkelvin);
+ return QString("%1%2").arg(celsius, 0, 'f', 1).arg(showunit ? _("C") : "");
+ } else {
+ double fahrenheit = mkelvin_to_F(temp.mkelvin);
+ return QString("%1%2").arg(fahrenheit, 0, 'f', 1).arg(showunit ? _("F") : "");
+ }
+}
+
+QString get_volume_string(volume_t volume, bool showunit)
+{
+ if (prefs.units.volume == units::LITER) {
+ double liter = volume.mliter / 1000.0;
+ return QString("%1%2").arg(liter, 0, 'f', liter >= 40.0 ? 0 : 1 ).arg(showunit ? _("l") : "");
+ } else {
+ double cuft = ml_to_cuft(volume.mliter);
+ return QString("%1%2").arg(cuft, 0, 'f', cuft >= 20.0 ? 0 : (cuft >= 2.0 ? 1 : 2)).arg(showunit ? _("cuft") : "");
+ }
+}
+
+QString get_pressure_string(pressure_t pressure, bool showunit)
+{
+ if (prefs.units.pressure == units::BAR) {
+ double bar = pressure.mbar / 1000.0;
+ return QString("%1%2").arg(bar, 0, 'f', 1).arg(showunit ? _("bar") : "");
+ } else {
+ double psi = mbar_to_PSI(pressure.mbar);
+ return QString("%1%2").arg(psi, 0, 'f', 0).arg(showunit ? _("psi") : "");
+ }
+}
#include "qt-gui.moc"