diff options
-rw-r--r-- | core/settings/qPrefUnit.cpp | 14 |
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; } |