summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/settings/qPrefUnit.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/core/settings/qPrefUnit.cpp b/core/settings/qPrefUnit.cpp
index c4f32490f..d995169d6 100644
--- a/core/settings/qPrefUnit.cpp
+++ b/core/settings/qPrefUnit.cpp
@@ -46,23 +46,29 @@ void qPrefUnits::set_unit_system(unit_system_values value)
{
prefs.unit_system = value;
if (prefs.unit_system == METRIC) {
- prefs.units = SI_units;
-
// make sure all types are updated when changing
set_volume(units::VOLUME::LITER);
set_weight(units::WEIGHT::KG);
set_length(units::LENGTH::METERS);
set_pressure(units::PRESSURE::BAR);
set_temperature(units::TEMPERATURE::CELSIUS);
- } else if (prefs.unit_system == IMPERIAL) {
- prefs.units = IMPERIAL_units;
+ // this statement need to be AFTER the setters are called
+ // because it sets all of prefs.units without calling the
+ // setters
+ prefs.units = SI_units;
+ } else if (prefs.unit_system == IMPERIAL) {
// make sure all types are updated when changing
set_volume(units::VOLUME::CUFT);
set_weight(units::WEIGHT::LBS);
set_length(units::LENGTH::FEET);
set_pressure(units::PRESSURE::PSI);
set_temperature(units::TEMPERATURE::FAHRENHEIT);
+
+ // this statement need to be AFTER the setters are called
+ // because it sets all of prefs.units without calling the
+ // setters
+ prefs.units = IMPERIAL_units;
} else {
prefs.unit_system = PERSONALIZE;
}