mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Fix imperial cylinder sizes in equipment tab
The imperial cylinder sizes are not just in cubic feet: they are in
cubic feet of gas at STP. So the imperial/metric difference is not
just about converting blindly from liters to cubic feet, you also have
to take the working pressure of the cylinder into account.
This was broken by commit f9b7c5dfe9
("Make units in cells
consistant in CylindersModel"), because those poor sheltered Swedish
people have never had to work with the wondrous imperial cylinder
sizing, and think that units should make _sense_. Hah.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c49d3885f5
commit
4cce5df7e2
3 changed files with 6 additions and 7 deletions
|
@ -19,7 +19,7 @@ QString get_weight_unit();
|
|||
QString get_cylinder_used_gas_string(cylinder_t *cyl, bool showunit = false);
|
||||
QString get_temperature_string(temperature_t temp, bool showunit = false);
|
||||
QString get_temp_unit();
|
||||
QString get_volume_string(volume_t volume, bool showunit = false);
|
||||
QString get_volume_string(volume_t volume, bool showunit = false, unsigned int mbar = 0);
|
||||
QString get_volume_unit();
|
||||
QString get_pressure_string(pressure_t pressure, bool showunit = false);
|
||||
QString get_pressure_unit();
|
||||
|
|
|
@ -322,13 +322,15 @@ QString get_temp_unit()
|
|||
return QString(UTF8_DEGREE "F");
|
||||
}
|
||||
|
||||
QString get_volume_string(volume_t volume, bool showunit)
|
||||
QString get_volume_string(volume_t volume, bool showunit, unsigned int mbar)
|
||||
{
|
||||
if (prefs.units.volume == units::LITER) {
|
||||
double liter = volume.mliter / 1000.0;
|
||||
return QString("%1%2").arg(liter, 0, 'f', liter >= 40.0 ? 0 : 1 ).arg(showunit ? translate("gettextFromC","l") : "");
|
||||
} else {
|
||||
double cuft = ml_to_cuft(volume.mliter);
|
||||
if (mbar)
|
||||
cuft *= bar_to_atm(mbar / 1000.0);
|
||||
return QString("%1%2").arg(cuft, 0, 'f', cuft >= 20.0 ? 0 : (cuft >= 2.0 ? 1 : 2)).arg(showunit ? translate("gettextFromC","cuft") : "");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -111,11 +111,8 @@ QVariant CylindersModel::data(const QModelIndex& index, int role) const
|
|||
ret = QString(cyl->type.description);
|
||||
break;
|
||||
case SIZE:
|
||||
// we can't use get_volume_string because the idiotic imperial tank
|
||||
// sizes take working pressure into account...
|
||||
if (cyl->type.size.mliter) {
|
||||
ret = get_volume_string(cyl->type.size, TRUE);
|
||||
}
|
||||
if (cyl->type.size.mliter)
|
||||
ret = get_volume_string(cyl->type.size, TRUE, cyl->type.workingpressure.mbar);
|
||||
break;
|
||||
case WORKINGPRESS:
|
||||
if (cyl->type.workingpressure.mbar)
|
||||
|
|
Loading…
Add table
Reference in a new issue