From 86abdc99654356a2047571e907b933505dbfab76 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sat, 20 Jul 2013 14:45:18 -0400 Subject: Add string output functions for units. (bzr r12380.1.46) --- src/util/units.cpp | 13 +++++++++++++ src/util/units.h | 3 +++ 2 files changed, 16 insertions(+) (limited to 'src/util') diff --git a/src/util/units.cpp b/src/util/units.cpp index dcb3ae4b1..01424520b 100644 --- a/src/util/units.cpp +++ b/src/util/units.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -501,6 +502,18 @@ double Quantity::value(const Glib::ustring u) const return value(unit_table.getUnit(u)); } +/** Return a printable string of the value in the specified unit. */ +Glib::ustring Quantity::string(const Unit &u) const { + return Glib::ustring::format(std::fixed, std::setprecision(2), value(u)) + " " + unit->abbr; +} +Glib::ustring Quantity::string(const Glib::ustring u) const { + static UnitTable unit_table; + return string(unit_table.getUnit(u)); +} +Glib::ustring Quantity::string() const { + return string(*unit); +} + /** Convert distances. */ double Quantity::convert(const double from_dist, const Unit &from, const Unit &to) { diff --git a/src/util/units.h b/src/util/units.h index 392e51e7a..0bbe604ef 100644 --- a/src/util/units.h +++ b/src/util/units.h @@ -94,6 +94,9 @@ public: bool compatibleWith(const Glib::ustring u) const; double value(const Unit &u) const; double value(const Glib::ustring u) const; + Glib::ustring string(const Unit &u) const; + Glib::ustring string(const Glib::ustring u) const; + Glib::ustring string() const; static double convert(const double from_dist, const Unit &from, const Unit &to); static double convert(const double from_dist, const Glib::ustring from, const Unit &to); -- cgit v1.2.3