While parsing weight and pressure we should not change the users settings.

Now it is possible to enter a specific unit that is different from the
unit stored in the preferences. If only numbers are inputed the unit will
be the same as specified by the users preferences.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Joakim Bygdell 2016-02-12 21:12:23 +01:00 committed by Dirk Hohndel
parent a91d4164b4
commit 6252d0cd3b
2 changed files with 28 additions and 22 deletions

View file

@ -832,20 +832,27 @@ int parseTemperatureToMkelvin(const QString &text)
int parseWeightToGrams(const QString &text)
{
int grams;
QString kg_or_lbs = text;
QString numOnly = text;
numOnly.replace(",", ".").remove(QRegExp("[^0-9.]"));
if (numOnly.isEmpty())
return 0;
double number = numOnly.toDouble();
switch (prefs.units.weight) {
case units::KG:
if (kg_or_lbs.contains(QObject::tr("kg")))
grams = rint(number * 1000);
break;
case units::LBS:
else if (kg_or_lbs.contains(QObject::tr("lbs")))
grams = lbs_to_grams(number);
break;
default:
grams = 0;
else {
switch (prefs.units.weight) {
case units::KG:
grams = rint(number * 1000);
break;
case units::LBS:
grams = lbs_to_grams(number);
break;
default:
grams = 0;
}
}
return grams;
}
@ -853,20 +860,27 @@ int parseWeightToGrams(const QString &text)
int parsePressureToMbar(const QString &text)
{
int mbar;
QString psi_or_bar = text;
QString numOnly = text;
numOnly.replace(",", ".").remove(QRegExp("[^0-9.]"));
if (numOnly.isEmpty())
return 0;
double number = numOnly.toDouble();
switch (prefs.units.pressure) {
case units::BAR:
if (psi_or_bar.contains(QObject::tr("bar")))
mbar = rint(number * 1000);
break;
case units::PSI:
else if (psi_or_bar.contains(QObject::tr("psi")))
mbar = psi_to_mbar(number);
break;
default:
mbar = 0;
else {
switch (prefs.units.pressure) {
case units::BAR:
mbar = rint(number * 1000);
break;
case units::PSI:
mbar = psi_to_mbar(number);
break;
default:
mbar = 0;
}
}
return mbar;
}