diff options
author | Miika Turkia <miika.turkia@gmail.com> | 2016-01-10 12:12:39 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-01-10 14:13:58 -0800 |
commit | 7701975d9804f9ce1f62a10a1a2d890f7c1b82d1 (patch) | |
tree | db43000c7dda553edc671e9c335418e517867e10 | |
parent | 82c87204e48654a9b2661c68fe66b9f16f81c4ba (diff) | |
download | subsurface-7701975d9804f9ce1f62a10a1a2d890f7c1b82d1.tar.gz |
Support for imperial depth on worldmap export
This will use the depth units from user preferences when exporting the
worldmap.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | subsurface-core/save-html.c | 23 | ||||
-rw-r--r-- | subsurface-core/save-html.h | 1 | ||||
-rw-r--r-- | subsurface-core/worldmap-save.c | 6 |
3 files changed, 27 insertions, 3 deletions
diff --git a/subsurface-core/save-html.c b/subsurface-core/save-html.c index 64ce94f66..5fc5b000a 100644 --- a/subsurface-core/save-html.c +++ b/subsurface-core/save-html.c @@ -259,6 +259,29 @@ void put_HTML_time(struct membuffer *b, struct dive *dive, const char *pre, cons put_format(b, "%s%02u:%02u:%02u%s", pre, tm.tm_hour, tm.tm_min, tm.tm_sec, post); } +void put_HTML_depth(struct membuffer *b, struct dive *dive, const char *pre, const char *post) +{ + const char *unit; + double value; + struct units *units_p = get_units(); + + if (!dive->maxdepth.mm) { + put_format(b, "%s--%s", pre, post); + return; + } + value = get_depth_units(dive->maxdepth.mm, NULL, &unit); + + switch (units_p->length) { + case METERS: + default: + put_format(b, "%s%.1f %s%s", pre, value, unit, post); + break; + case FEET: + put_format(b, "%s%.0f %s%s", pre, value, unit, post); + break; + } +} + void put_HTML_airtemp(struct membuffer *b, struct dive *dive, const char *pre, const char *post) { const char *unit; diff --git a/subsurface-core/save-html.h b/subsurface-core/save-html.h index 20743e90a..13bb102b1 100644 --- a/subsurface-core/save-html.h +++ b/subsurface-core/save-html.h @@ -9,6 +9,7 @@ extern "C" { #include "membuffer.h" void put_HTML_date(struct membuffer *b, struct dive *dive, const char *pre, const char *post); +void put_HTML_depth(struct membuffer *b, struct dive *dive, const char *pre, const char *post); void put_HTML_airtemp(struct membuffer *b, struct dive *dive, const char *pre, const char *post); void put_HTML_watertemp(struct membuffer *b, struct dive *dive, const char *pre, const char *post); void put_HTML_time(struct membuffer *b, struct dive *dive, const char *pre, const char *post); diff --git a/subsurface-core/worldmap-save.c b/subsurface-core/worldmap-save.c index 25c5ee33f..f79978495 100644 --- a/subsurface-core/worldmap-save.c +++ b/subsurface-core/worldmap-save.c @@ -40,9 +40,9 @@ void writeMarkers(struct membuffer *b, const bool selected_only) snprintf(pre, sizeof(pre), "<p>%s ", translate("gettextFromC", "Duration:")); snprintf(post, sizeof(post), " %s</p>", translate("gettextFromC", "min")); put_duration(b, dive->duration, pre, post); - snprintf(pre, sizeof(pre), "<p>%s ", translate("gettextFromC", "Max. depth:")); - snprintf(post, sizeof(post), " %s</p>", translate("gettextFromC", "m")); - put_depth(b, dive->maxdepth, pre, post); + put_string(b, "<p> "); + put_HTML_quoted(b, translate("gettextFromC", "Max. depth:")); + put_HTML_depth(b, dive, " ", "</p>"); put_string(b, "<p> "); put_HTML_quoted(b, translate("gettextFromC", "Air temp.:")); put_HTML_airtemp(b, dive, " ", "</p>"); |