mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 20:43:24 +00:00
Add a helper function to calculate weight display string
Add a helper function to unify the calculation of the weight display string, instead of having the same calculation in two places in the code. Signed-off-by: Benjamin Fogel <nystire@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
f63605e02e
commit
ae713763c7
4 changed files with 27 additions and 17 deletions
11
qt-gui.cpp
11
qt-gui.cpp
|
@ -216,14 +216,13 @@ QString get_depth_unit()
|
|||
|
||||
QString get_weight_string(weight_t weight, bool showunit)
|
||||
{
|
||||
if (prefs.units.weight == units::KG) {
|
||||
int gr = weight.grams % 1000;
|
||||
int kg = weight.grams / 1000;
|
||||
return QString("%1.%2%3").arg(kg).arg((unsigned)(gr) / 100).arg(showunit ? _("kg") : "");
|
||||
QString str = weight_string (weight.grams);
|
||||
if (get_units()->weight == units::KG) {
|
||||
str = QString ("%1%2").arg(str).arg(showunit ? _("kg") : "");
|
||||
} else {
|
||||
double lbs = grams_to_lbs(weight.grams);
|
||||
return QString("%1%2").arg(lbs, 0, 'f', lbs >= 40.0 ? 0 : 1 ).arg(showunit ? _("lbs") : "");
|
||||
str = QString ("%1%2").arg(str).arg(showunit ? _("lbs") : "");
|
||||
}
|
||||
return (str);
|
||||
}
|
||||
|
||||
QString get_weight_unit()
|
||||
|
|
|
@ -1107,17 +1107,7 @@ QString DiveItem::displaySac() const
|
|||
|
||||
QString DiveItem::displayWeight() const
|
||||
{
|
||||
QString str;
|
||||
|
||||
if (get_units()->weight == units::KG) {
|
||||
int gr = weight() % 1000;
|
||||
int kg = weight() / 1000;
|
||||
str = QString("%1.%2").arg(kg).arg((unsigned)(gr) / 100);
|
||||
} else {
|
||||
double lbs = grams_to_lbs(weight());
|
||||
str = QString("%1").arg(lbs, 0, 'f', lbs >= 40.0 ? 0 : 1 );
|
||||
}
|
||||
|
||||
QString str = weight_string(weight());
|
||||
return str;
|
||||
}
|
||||
|
||||
|
|
18
qthelper.cpp
18
qthelper.cpp
|
@ -76,3 +76,21 @@ void DiveComputerList::rmDC(QString m, uint32_t d)
|
|||
const DiveComputerNode *existNode = this->getExact(m, d);
|
||||
dcMap.remove(m, *existNode);
|
||||
}
|
||||
|
||||
QString weight_string(int weight_in_grams)
|
||||
{
|
||||
QString str;
|
||||
if (get_units()->weight == units::KG) {
|
||||
int gr = weight_in_grams % 1000;
|
||||
int kg = weight_in_grams / 1000;
|
||||
if (kg >= 20.0) {
|
||||
str = QString("0");
|
||||
} else {
|
||||
str = QString("%1.%2").arg(kg).arg((unsigned)(gr) / 100);
|
||||
}
|
||||
} else {
|
||||
double lbs = grams_to_lbs(weight_in_grams);
|
||||
str = QString("%1").arg(lbs, 0, 'f', lbs >= 40.0 ? 0 : 1 );
|
||||
}
|
||||
return (str);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <QMultiMap>
|
||||
#include <QString>
|
||||
#include <stdint.h>
|
||||
#include "dive.h"
|
||||
|
||||
class DiveComputerNode {
|
||||
public:
|
||||
|
@ -32,4 +33,6 @@ public:
|
|||
QMultiMap<QString, struct DiveComputerNode> dcWorkingMap;
|
||||
};
|
||||
|
||||
QString weight_string(int weight_in_grams);
|
||||
|
||||
#endif // QTHELPER_H
|
||||
|
|
Loading…
Add table
Reference in a new issue