diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-02-24 14:42:56 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-02-25 00:58:09 +0100 |
commit | 288aff9dbb58b6e18cf12f4d04502d60f18e74a9 (patch) | |
tree | eb26c6f42eb88f29c027a19834511766d21a37ec /subsurface-core/qthelper.cpp | |
parent | 7ebc31c1ec15ef6b34c27b9c0f892a5a90b0eef3 (diff) | |
download | subsurface-288aff9dbb58b6e18cf12f4d04502d60f18e74a9.tar.gz |
Don't use "get_volume_string()" for cylinder size string
We had two totally different usage cases for "get_volume_string()": one
that did the obvious "show this volume as a string", and one that tried
to show a cylinder size.
The function used a magic third argument (the working pressure of the
cylinder) to distinguish between the two cases, but it still got it
wrong.
A metric cylinder doesn't necessarily have a working pressure at all,
and the size is a wet size in liters. We'd pass in zero as the working
pressure, and if the volume units were set to cubic feet, the logic in
"get_volume_string()" would happily convert the metric wet size into the
wet size in cubic feet.
But that's completely wrong. An imperial cylinder size simply isn't a
wet size. If you don't have a working pressure, you cannot convert the
cylinder size to cubic feet. End of story.
So instead of having "get_volume_string()" have magical behavior
depending on working pressure, and getting it wrong anyway, just make
get_volume_string do a pure volume conversion, and create a whole new
function for showing the size of a cylinder.
Now, if the cylinder doesn't have a working pressure, we just show the
metric size, even if the user had asked for cubic feet.
[Dirk Hohndel: added call to translation functions for the units]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'subsurface-core/qthelper.cpp')
-rw-r--r-- | subsurface-core/qthelper.cpp | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/subsurface-core/qthelper.cpp b/subsurface-core/qthelper.cpp index bfc7fc57b..d1c6a8826 100644 --- a/subsurface-core/qthelper.cpp +++ b/subsurface-core/qthelper.cpp @@ -678,19 +678,11 @@ QString get_temp_unit() return QString(UTF8_DEGREE "F"); } -QString get_volume_string(volume_t volume, bool showunit, int mbar) +QString get_volume_string(volume_t volume, bool showunit) { const char *unit; int decimals; double value = get_volume_units(volume.mliter, &decimals, &unit); - if (mbar) { - // we are showing a tank size - // fix the weird imperial way of denominating size and provide - // reasonable number of decimals - if (prefs.units.volume == units::CUFT) - value *= bar_to_atm(mbar / 1000.0); - decimals = (value > 20.0) ? 0 : (value > 2.0) ? 1 : 2; - } return QString("%1%2").arg(value, 0, 'f', decimals).arg(showunit ? unit : ""); } |