Base: refactor unit formatting defaults

Defaults for both precision (number of digits after decimal point)
and denominator (number of fractions) are defined on various places
making difficult to find which default is used for various tasks.
Store these values at one central place: UnitsApi. Unless overriden
by user, default values are defined by unitSchemasDataPack.
This commit is contained in:
Ladislav Michl
2025-08-27 11:40:50 +02:00
parent 28c256ba07
commit e7cd72b2e0
6 changed files with 30 additions and 50 deletions

View File

@@ -57,23 +57,18 @@ using Base::Quantity;
using Base::QuantityFormat;
using Base::UnitsSchema;
// ====== Static attributes =========================
// NOLINTNEXTLINE
int QuantityFormat::defaultDenominator = 8; // for 1/8"
QuantityFormat::QuantityFormat()
: option(OmitGroupSeparator | RejectGroupSeparator)
, format(Fixed)
, precision(static_cast<int>(UnitsApi::getDecimals()))
, denominator(defaultDenominator)
, precision(UnitsApi::getDecimals())
, denominator(UnitsApi::getDenominator())
{}
QuantityFormat::QuantityFormat(QuantityFormat::NumberFormat format, int decimals)
: option(OmitGroupSeparator | RejectGroupSeparator)
, format(format)
, precision(decimals < 0 ? UnitsApi::getDecimals() : decimals)
, denominator(defaultDenominator)
, denominator(UnitsApi::getDenominator())
{}
// ----------------------------------------------------------------------------