Skip to content

Commit

Permalink
Base: add convenience functions to create a QString from quantity
Browse files Browse the repository at this point in the history
  • Loading branch information
wwmayer committed Apr 20, 2021
1 parent cd9319f commit e084df6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/Base/UnitsApi.cpp
Expand Up @@ -154,15 +154,21 @@ void UnitsApi::setSchema(UnitSystem s)
UserPrefSystem->setSchemaUnits(); // if necessary a unit schema can change the constants in Quantity (e.g. mi=1.8km rather then 1.6km).
}

QString UnitsApi::toString(const Base::Quantity& q, const QuantityFormat& f)
{
QString value = QString::fromLatin1("'%1 %2'").arg(q.getValue(), 0, f.toFormat(), f.precision+1)
.arg(q.getUnit().getString());
return value;
}

QString UnitsApi::toNumber(const Base::Quantity& q, const QuantityFormat& f)
{
QString number = QString::fromLatin1("%1").arg(q.getValue(), 0, f.toFormat(), f.precision);
return number;
return toNumber(q.getValue(), f);
}

QString UnitsApi::toNumber(double d, const QuantityFormat& f)
{
QString number = QString::fromLatin1("%1").arg(d, 0, f.toFormat(), f.precision);
QString number = QString::fromLatin1("%1").arg(d, 0, f.toFormat(), f.precision+1);
return number;
}

Expand Down
9 changes: 9 additions & 0 deletions src/Base/UnitsApi.h
Expand Up @@ -66,11 +66,20 @@ class BaseExport UnitsApi
return UnitsApi::schemaTranslate(quant, dummy1, dummy2);
}

/** Get a number as string for a quantity of a given format.
* The string is a number in C locale (i.e. the decimal separator is always a dot) and if
* needed represented in scientific notation. The string also includes the unit of the quantity.
*/
static QString toString(const Base::Quantity& q, const QuantityFormat& f = QuantityFormat(QuantityFormat::Default));
/** Get a number as string for a quantity of a given format.
* The string is a number in C locale (i.e. the decimal separator is always a dot) and if
* needed represented in scientific notation. The string doesn't include the unit of the quantity.
*/
static QString toNumber(const Base::Quantity& q, const QuantityFormat& f = QuantityFormat(QuantityFormat::Default));
/** Get a number as string for a double of a given format.
* The string is a number in C locale (i.e. the decimal separator is always a dot) and if
* needed represented in scientific notation. The string doesn't include the unit of the quantity.
*/
static QString toNumber(double d, const QuantityFormat& f = QuantityFormat(QuantityFormat::Default));

/// generate a value for a quantity with default user preferred system
Expand Down

0 comments on commit e084df6

Please sign in to comment.