core: add get_*_unit functions with explicit unit system

The get_*_unit() functions return the unit-name as set in
the preferences. Add versions with a "metric" parameter.

This will be used by the statistics code, which may in
the future allow for binning with alternative units.

All the unit-formatting functions should probably be moved
away from qthelper to their own source file.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2021-01-01 12:09:19 +01:00 committed by bstoeger
parent e23d103c5d
commit b02847de53
2 changed files with 40 additions and 16 deletions

View file

@ -542,14 +542,19 @@ QString get_depth_string(depth_t depth, bool showunit, bool showdecimal)
return get_depth_string(depth.mm, showunit, showdecimal); return get_depth_string(depth.mm, showunit, showdecimal);
} }
QString get_depth_unit() QString get_depth_unit(bool metric)
{ {
if (prefs.units.length == units::METERS) if (metric)
return gettextFromC::tr("m"); return gettextFromC::tr("m");
else else
return gettextFromC::tr("ft"); return gettextFromC::tr("ft");
} }
QString get_depth_unit()
{
return get_depth_unit(prefs.units.length == units::METERS);
}
QString get_weight_string(weight_t weight, bool showunit) QString get_weight_string(weight_t weight, bool showunit)
{ {
QString str = weight_string(weight.grams); QString str = weight_string(weight.grams);
@ -561,14 +566,19 @@ QString get_weight_string(weight_t weight, bool showunit)
return str; return str;
} }
QString get_weight_unit() QString get_weight_unit(bool metric)
{ {
if (prefs.units.weight == units::KG) if (metric)
return gettextFromC::tr("kg"); return gettextFromC::tr("kg");
else else
return gettextFromC::tr("lbs"); return gettextFromC::tr("lbs");
} }
QString get_weight_unit()
{
return get_weight_unit(prefs.units.weight == units::KG);
}
QString get_temperature_string(temperature_t temp, bool showunit) QString get_temperature_string(temperature_t temp, bool showunit)
{ {
if (temp.mkelvin == 0) { if (temp.mkelvin == 0) {
@ -582,12 +592,17 @@ QString get_temperature_string(temperature_t temp, bool showunit)
} }
} }
QString get_temp_unit(bool metric)
{
if (metric)
return QStringLiteral("°C");
else
return QStringLiteral("°F");
}
QString get_temp_unit() QString get_temp_unit()
{ {
if (prefs.units.temperature == units::CELSIUS) return get_temp_unit(prefs.units.temperature == units::CELSIUS);
return QString("°C");
else
return QString("°F");
} }
QString get_volume_string(int mliter, bool showunit) QString get_volume_string(int mliter, bool showunit)
@ -603,11 +618,17 @@ QString get_volume_string(volume_t volume, bool showunit)
return get_volume_string(volume.mliter, showunit); return get_volume_string(volume.mliter, showunit);
} }
QString get_volume_unit(bool metric)
{
if (metric)
return gettextFromC::tr("");
else
return gettextFromC::tr("cuft");
}
QString get_volume_unit() QString get_volume_unit()
{ {
const char *unit; return get_volume_unit(prefs.units.volume == units::LITER);
(void) get_volume_units(0, NULL, &unit);
return QString(unit);
} }
QString get_pressure_string(pressure_t pressure, bool showunit) QString get_pressure_string(pressure_t pressure, bool showunit)

View file

@ -46,16 +46,19 @@ QStringList videoExtensionFilters();
char *copy_qstring(const QString &); char *copy_qstring(const QString &);
QString get_depth_string(depth_t depth, bool showunit = false, bool showdecimal = true); QString get_depth_string(depth_t depth, bool showunit = false, bool showdecimal = true);
QString get_depth_string(int mm, bool showunit = false, bool showdecimal = true); QString get_depth_string(int mm, bool showunit = false, bool showdecimal = true);
QString get_depth_unit(); QString get_depth_unit(bool metric);
QString get_depth_unit(); // use preferences unit
QString get_weight_string(weight_t weight, bool showunit = false); QString get_weight_string(weight_t weight, bool showunit = false);
QString get_weight_unit(); QString get_weight_unit(bool metric);
QString get_weight_unit(); // use preferences unit
QString get_temperature_string(temperature_t temp, bool showunit = false); QString get_temperature_string(temperature_t temp, bool showunit = false);
QString get_temp_unit(); QString get_temp_unit(bool metric);
QString get_temp_unit(); // use preferences unit
QString get_volume_string(volume_t volume, bool showunit = false); QString get_volume_string(volume_t volume, bool showunit = false);
QString get_volume_string(int mliter, bool showunit = false); QString get_volume_string(int mliter, bool showunit = false);
QString get_volume_unit(); QString get_volume_unit(bool metric);
QString get_volume_unit(); // use preferences unit
QString get_pressure_string(pressure_t pressure, bool showunit = false); QString get_pressure_string(pressure_t pressure, bool showunit = false);
QString get_pressure_unit();
QString get_salinity_string(int salinity); QString get_salinity_string(int salinity);
QString get_water_type_string(int salinity); QString get_water_type_string(int salinity);
QString getSubsurfaceDataPath(QString folderToFind); QString getSubsurfaceDataPath(QString folderToFind);