mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
fdbd80a3a2
commit
c4d5ebb069
2 changed files with 46 additions and 8 deletions
16
dive.h
16
dive.h
|
@ -95,7 +95,21 @@ static inline int to_C(temperature_t temp)
|
|||
{
|
||||
if (!temp.mkelvin)
|
||||
return 0;
|
||||
return (temp.mkelvin - 273150) / 1000;
|
||||
return (temp.mkelvin - 273150 + 499) / 1000;
|
||||
}
|
||||
|
||||
static inline int to_F(temperature_t temp)
|
||||
{
|
||||
if (!temp.mkelvin)
|
||||
return 0;
|
||||
return temp.mkelvin * 9 / 5000.0 - 459.670 + 0.5;
|
||||
}
|
||||
|
||||
static inline int to_K(temperature_t temp)
|
||||
{
|
||||
if (!temp.mkelvin)
|
||||
return 0;
|
||||
return (temp.mkelvin + 499)/1000;
|
||||
}
|
||||
|
||||
static inline int to_PSI(pressure_t pressure)
|
||||
|
|
38
info.c
38
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 ? : "";
|
||||
|
|
Loading…
Add table
Reference in a new issue