summaryrefslogtreecommitdiffstats
path: root/info.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-09-07 09:35:45 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-09-07 09:35:45 -0700
commitc4d5ebb069d41f143d829da26693a72152809f20 (patch)
tree9b5e9ce6333ad74f144fa2cf168c160f4f73a276 /info.c
parentfdbd80a3a2e7185b931de139e043304ec5977350 (diff)
downloadsubsurface-c4d5ebb069d41f143d829da26693a72152809f20.tar.gz
Do output unit conversion in the dive info window too
This should take care of it all, unless I missed some case. Now we should just save the default units somewhere, and I should do the divelist update much cleaner (instead of re-doing the divelist entirely, it should just repaint it - now we lose the highlited dive etc). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'info.c')
-rw-r--r--info.c38
1 files changed, 31 insertions, 7 deletions
diff --git a/info.c b/info.c
index 94dcd3485..b789d9fd8 100644
--- a/info.c
+++ b/info.c
@@ -78,9 +78,18 @@ void update_dive_info(struct dive *dive)
tm->tm_hour, tm->tm_min, tm->tm_sec);
gtk_label_set_text(GTK_LABEL(divetime), buffer);
- snprintf(buffer, sizeof(buffer),
- "%d ft",
- to_feet(dive->maxdepth));
+ switch (output_units.length) {
+ case METERS:
+ snprintf(buffer, sizeof(buffer),
+ "%.1f m",
+ dive->maxdepth.mm / 1000.0);
+ break;
+ case FEET:
+ snprintf(buffer, sizeof(buffer),
+ "%d ft",
+ to_feet(dive->maxdepth));
+ break;
+ }
gtk_label_set_text(GTK_LABEL(depth), buffer);
snprintf(buffer, sizeof(buffer),
@@ -89,10 +98,25 @@ void update_dive_info(struct dive *dive)
gtk_label_set_text(GTK_LABEL(duration), buffer);
*buffer = 0;
- if (dive->watertemp.mkelvin)
- snprintf(buffer, sizeof(buffer),
- "%d C",
- to_C(dive->watertemp));
+ if (dive->watertemp.mkelvin) {
+ switch (output_units.temperature) {
+ case CELSIUS:
+ snprintf(buffer, sizeof(buffer),
+ "%d C",
+ to_C(dive->watertemp));
+ break;
+ case FAHRENHEIT:
+ snprintf(buffer, sizeof(buffer),
+ "%d F",
+ to_F(dive->watertemp));
+ break;
+ case KELVIN:
+ snprintf(buffer, sizeof(buffer),
+ "%d K",
+ to_K(dive->watertemp));
+ break;
+ }
+ }
gtk_label_set_text(GTK_LABEL(temperature), buffer);
text = dive->location ? : "";