diff --git a/desktop-widgets/preferences.cpp b/desktop-widgets/preferences.cpp
index 2ce96bd77..672d75906 100644
--- a/desktop-widgets/preferences.cpp
+++ b/desktop-widgets/preferences.cpp
@@ -146,7 +146,6 @@ void PreferencesDialog::setUiFromPrefs()
ui.pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
ui.maxpo2->setValue(prefs.modpO2);
ui.red_ceiling->setChecked(prefs.redceiling);
- ui.units_group->setEnabled(ui.personalize->isChecked());
ui.gflow->setValue(prefs.gflow);
ui.gfhigh->setValue(prefs.gfhigh);
@@ -157,31 +156,8 @@ void PreferencesDialog::setUiFromPrefs()
ui.psro2rate->setValue(prefs.o2consumption / 1000.0);
ui.pscrfactor->setValue(rint(1000.0 / prefs.pscr_ratio));
- // units
- if (prefs.unit_system == METRIC)
- ui.metric->setChecked(true);
- else if (prefs.unit_system == IMPERIAL)
- ui.imperial->setChecked(true);
- else
- ui.personalize->setChecked(true);
- ui.gpsTraditional->setChecked(prefs.coordinates_traditional);
- ui.gpsDecimal->setChecked(!prefs.coordinates_traditional);
-
- ui.celsius->setChecked(prefs.units.temperature == units::CELSIUS);
- ui.fahrenheit->setChecked(prefs.units.temperature == units::FAHRENHEIT);
- ui.meter->setChecked(prefs.units.length == units::METERS);
- ui.feet->setChecked(prefs.units.length == units::FEET);
- ui.bar->setChecked(prefs.units.pressure == units::BAR);
- ui.psi->setChecked(prefs.units.pressure == units::PSI);
- ui.liter->setChecked(prefs.units.volume == units::LITER);
- ui.cuft->setChecked(prefs.units.volume == units::CUFT);
- ui.kg->setChecked(prefs.units.weight == units::KG);
- ui.lbs->setChecked(prefs.units.weight == units::LBS);
-
ui.display_unused_tanks->setChecked(prefs.display_unused_tanks);
ui.show_average_depth->setChecked(prefs.show_average_depth);
- ui.vertical_speed_minutes->setChecked(prefs.units.vertical_speed_time == units::MINUTES);
- ui.vertical_speed_seconds->setChecked(prefs.units.vertical_speed_time == units::SECONDS);
QSettings s;
@@ -237,20 +213,6 @@ void PreferencesDialog::syncSettings()
SAVE_OR_REMOVE("show_average_depth", default_prefs.show_average_depth, ui.show_average_depth->isChecked());
s.endGroup();
- // Units
- s.beginGroup("Units");
- QString unitSystem[] = {"metric", "imperial", "personal"};
- short unitValue = ui.metric->isChecked() ? METRIC : (ui.imperial->isChecked() ? IMPERIAL : PERSONALIZE);
- SAVE_OR_REMOVE_SPECIAL("unit_system", default_prefs.unit_system, unitValue, unitSystem[unitValue]);
- s.setValue("temperature", ui.fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS);
- s.setValue("length", ui.feet->isChecked() ? units::FEET : units::METERS);
- s.setValue("pressure", ui.psi->isChecked() ? units::PSI : units::BAR);
- s.setValue("volume", ui.cuft->isChecked() ? units::CUFT : units::LITER);
- s.setValue("weight", ui.lbs->isChecked() ? units::LBS : units::KG);
- s.setValue("vertical_speed_time", ui.vertical_speed_minutes->isChecked() ? units::MINUTES : units::SECONDS);
- s.setValue("coordinates", ui.gpsTraditional->isChecked());
- s.endGroup();
-
// Defaults
s.beginGroup("GeneralSettings");
s.setValue("defaultsetpoint", rint(ui.defaultSetpoint->value() * 1000.0));
@@ -391,7 +353,6 @@ void PreferencesDialog::buttonClicked(QAbstractButton *button)
void PreferencesDialog::on_resetSettings_clicked()
{
QSettings s;
-
QMessageBox response(this);
response.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
response.setDefaultButton(QMessageBox::Cancel);
diff --git a/desktop-widgets/preferences.ui b/desktop-widgets/preferences.ui
index a799d966c..12ba10d4b 100644
--- a/desktop-widgets/preferences.ui
+++ b/desktop-widgets/preferences.ui
@@ -83,16 +83,6 @@
-1
- -
-
- Units
-
-
-
- :/units
-
-
-
-
Graph
@@ -134,309 +124,8 @@
- 3
+ 0
-
-
-
- 0
- 0
-
-
-
-
- 5
-
-
- 5
-
-
-
-
-
- Unit system
-
-
-
-
-
-
- System
-
-
-
- -
-
-
- &Metric
-
-
- buttonGroup_6
-
-
-
- -
-
-
- Imperial
-
-
- buttonGroup_6
-
-
-
- -
-
-
- Personali&ze
-
-
- buttonGroup_6
-
-
-
-
-
-
- -
-
-
- Individual settings
-
-
- false
-
-
- false
-
-
-
-
-
-
- Depth
-
-
-
- -
-
-
- meter
-
-
- buttonGroup
-
-
-
- -
-
-
- feet
-
-
- buttonGroup
-
-
-
- -
-
-
- Pressure
-
-
-
- -
-
-
- bar
-
-
- buttonGroup_2
-
-
-
- -
-
-
- psi
-
-
- buttonGroup_2
-
-
-
- -
-
-
- Volume
-
-
-
- -
-
-
- &liter
-
-
- buttonGroup_3
-
-
-
- -
-
-
- cu ft
-
-
- buttonGroup_3
-
-
-
- -
-
-
- Temperature
-
-
-
- -
-
-
- celsius
-
-
- buttonGroup_4
-
-
-
- -
-
-
- fahrenheit
-
-
- buttonGroup_4
-
-
-
- -
-
-
- Weight
-
-
-
- -
-
-
- kg
-
-
- buttonGroup_5
-
-
-
- -
-
-
- lbs
-
-
- buttonGroup_5
-
-
-
-
-
-
- -
-
-
-
-
-
- Time units
-
-
-
-
-
-
- Ascent/descent speed denominator
-
-
-
- -
-
-
- Minutes
-
-
- verticalSpeed
-
-
-
- -
-
-
- Seconds
-
-
- verticalSpeed
-
-
-
-
-
-
-
-
- -
-
-
- GPS coordinates
-
-
-
-
-
-
- Location Display
-
-
-
- -
-
-
- traditional (dms)
-
-
- buttonGroup_7
-
-
-
- -
-
-
- decimal
-
-
- buttonGroup_7
-
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 0
- 0
-
-
-
-
-
-
@@ -1120,182 +809,6 @@
-
- personalize
- toggled(bool)
- units_group
- setEnabled(bool)
-
-
- 185
- 19
-
-
- 186
- 23
-
-
-
-
- imperial
- toggled(bool)
- feet
- setChecked(bool)
-
-
- 164
- 19
-
-
- 175
- 34
-
-
-
-
- metric
- toggled(bool)
- meter
- setChecked(bool)
-
-
- 142
- 19
-
-
- 153
- 34
-
-
-
-
- imperial
- toggled(bool)
- psi
- setChecked(bool)
-
-
- 164
- 19
-
-
- 175
- 33
-
-
-
-
- metric
- toggled(bool)
- bar
- setChecked(bool)
-
-
- 142
- 19
-
-
- 153
- 33
-
-
-
-
- imperial
- toggled(bool)
- cuft
- setChecked(bool)
-
-
- 164
- 19
-
-
- 175
- 31
-
-
-
-
- metric
- toggled(bool)
- liter
- setChecked(bool)
-
-
- 142
- 19
-
-
- 153
- 31
-
-
-
-
- imperial
- toggled(bool)
- fahrenheit
- setChecked(bool)
-
-
- 164
- 19
-
-
- 175
- 29
-
-
-
-
- metric
- toggled(bool)
- celsius
- setChecked(bool)
-
-
- 142
- 19
-
-
- 153
- 29
-
-
-
-
- imperial
- toggled(bool)
- lbs
- setChecked(bool)
-
-
- 164
- 19
-
-
- 175
- 28
-
-
-
-
- metric
- toggled(bool)
- kg
- setChecked(bool)
-
-
- 142
- 19
-
-
- 153
- 28
-
-
-
proxyAuthRequired
toggled(bool)
diff --git a/desktop-widgets/preferences/CMakeLists.txt b/desktop-widgets/preferences/CMakeLists.txt
index c55d7b881..8ea4bd79c 100644
--- a/desktop-widgets/preferences/CMakeLists.txt
+++ b/desktop-widgets/preferences/CMakeLists.txt
@@ -15,6 +15,7 @@ set(SUBSURFACE_PREFERENCES_LIB_SRCS
preferences_language.cpp
preferences_georeference.cpp
preferences_defaults.cpp
+ preferences_units.cpp
)
source_group("Subsurface Preferences" FILES ${SUBSURFACE_PREFERENCES_LIB_SRCS})
diff --git a/desktop-widgets/preferences/preferences_units.cpp b/desktop-widgets/preferences/preferences_units.cpp
new file mode 100644
index 000000000..76f2078d7
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_units.cpp
@@ -0,0 +1,60 @@
+#include "preferences_units.h"
+#include "ui_preferences_units.h"
+#include "prefs-macros.h"
+#include "qthelper.h"
+
+#include
+
+PreferencesUnits::PreferencesUnits(): AbstractPreferencesWidget(tr("Units"),QIcon(":units"),1), ui(new Ui::PreferencesUnits())
+{
+ ui->setupUi(this);
+}
+
+PreferencesUnits::~PreferencesUnits()
+{
+
+}
+
+void PreferencesUnits::refreshSettings()
+{
+ QSettings s;
+ s.beginGroup("Units");
+ QString unitSystem[] = {"metric", "imperial", "personal"};
+ short unitValue = ui->metric->isChecked() ? METRIC : (ui->imperial->isChecked() ? IMPERIAL : PERSONALIZE);
+ SAVE_OR_REMOVE_SPECIAL("unit_system", default_prefs.unit_system, unitValue, unitSystem[unitValue]);
+ s.setValue("temperature", ui->fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS);
+ s.setValue("length", ui->feet->isChecked() ? units::FEET : units::METERS);
+ s.setValue("pressure", ui->psi->isChecked() ? units::PSI : units::BAR);
+ s.setValue("volume", ui->cuft->isChecked() ? units::CUFT : units::LITER);
+ s.setValue("weight", ui->lbs->isChecked() ? units::LBS : units::KG);
+ s.setValue("vertical_speed_time", ui->vertical_speed_minutes->isChecked() ? units::MINUTES : units::SECONDS);
+ s.setValue("coordinates", ui->gpsTraditional->isChecked());
+ s.endGroup();
+}
+
+void PreferencesUnits::syncSettings()
+{
+ switch(prefs.unit_system) {
+ case METRIC: ui->metric->setChecked(true); break;
+ case IMPERIAL: ui->imperial->setChecked(true); break;
+ default: ui->personalize->setChecked(true); break;
+ }
+
+ ui->gpsTraditional->setChecked(prefs.coordinates_traditional);
+ ui->gpsDecimal->setChecked(!prefs.coordinates_traditional);
+
+ ui->celsius->setChecked(prefs.units.temperature == units::CELSIUS);
+ ui->fahrenheit->setChecked(prefs.units.temperature == units::FAHRENHEIT);
+ ui->meter->setChecked(prefs.units.length == units::METERS);
+ ui->feet->setChecked(prefs.units.length == units::FEET);
+ ui->bar->setChecked(prefs.units.pressure == units::BAR);
+ ui->psi->setChecked(prefs.units.pressure == units::PSI);
+ ui->liter->setChecked(prefs.units.volume == units::LITER);
+ ui->cuft->setChecked(prefs.units.volume == units::CUFT);
+ ui->kg->setChecked(prefs.units.weight == units::KG);
+ ui->lbs->setChecked(prefs.units.weight == units::LBS);
+ ui->units_group->setEnabled(ui->personalize->isChecked());
+
+ ui->vertical_speed_minutes->setChecked(prefs.units.vertical_speed_time == units::MINUTES);
+ ui->vertical_speed_seconds->setChecked(prefs.units.vertical_speed_time == units::SECONDS);
+}
diff --git a/desktop-widgets/preferences/preferences_units.h b/desktop-widgets/preferences/preferences_units.h
new file mode 100644
index 000000000..21a7f4404
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_units.h
@@ -0,0 +1,21 @@
+#ifndef PREFERENCES_UNITS_H
+#define PREFERENCES_UNITS_H
+
+#include "abstractpreferenceswidget.h"
+
+namespace Ui {
+ class PreferencesUnits;
+}
+
+class PreferencesUnits : public AbstractPreferencesWidget {
+ Q_OBJECT
+public:
+ PreferencesUnits();
+ virtual ~PreferencesUnits();
+ virtual void refreshSettings();
+ virtual void syncSettings();
+private:
+ Ui::PreferencesUnits *ui;
+};
+
+#endif
\ No newline at end of file
diff --git a/desktop-widgets/preferences/preferences_units.ui b/desktop-widgets/preferences/preferences_units.ui
new file mode 100644
index 000000000..bb1ffba66
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_units.ui
@@ -0,0 +1,251 @@
+
+
+ PreferencesUnits
+
+
+
+ 0
+ 0
+ 400
+ 374
+
+
+
+ Form
+
+
+ -
+
+
+ Unit system
+
+
+
-
+
+
+ System
+
+
+
+ -
+
+
+ &Metric
+
+
+
+ -
+
+
+ Imperial
+
+
+
+ -
+
+
+ Personali&ze
+
+
+
+
+
+
+ -
+
+
+ Individual settings
+
+
+ false
+
+
+ false
+
+
+
-
+
+
+ Depth
+
+
+
+ -
+
+
+ meter
+
+
+
+ -
+
+
+ feet
+
+
+
+ -
+
+
+ Pressure
+
+
+
+ -
+
+
+ bar
+
+
+
+ -
+
+
+ psi
+
+
+
+ -
+
+
+ Volume
+
+
+
+ -
+
+
+ &liter
+
+
+
+ -
+
+
+ cu ft
+
+
+
+ -
+
+
+ Temperature
+
+
+
+ -
+
+
+ celsius
+
+
+
+ -
+
+
+ fahrenheit
+
+
+
+ -
+
+
+ Weight
+
+
+
+ -
+
+
+ kg
+
+
+
+ -
+
+
+ lbs
+
+
+
+
+
+
+ -
+
+
+ Time units
+
+
+
-
+
+
+ Ascent/descent speed denominator
+
+
+
+ -
+
+
+ Minutes
+
+
+
+ -
+
+
+ Seconds
+
+
+
+
+
+
+ -
+
+
+ GPS coordinates
+
+
+
-
+
+
+ Location Display
+
+
+
+ -
+
+
+ traditional (dms)
+
+
+
+ -
+
+
+ decimal
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
diff --git a/desktop-widgets/preferences/preferencesdialog.cpp b/desktop-widgets/preferences/preferencesdialog.cpp
index 6f66d856d..7d9e17d7e 100644
--- a/desktop-widgets/preferences/preferencesdialog.cpp
+++ b/desktop-widgets/preferences/preferencesdialog.cpp
@@ -4,6 +4,7 @@
#include "preferences_language.h"
#include "preferences_georeference.h"
#include "preferences_defaults.h"
+#include "preferences_units.h"
#include
#include
@@ -37,6 +38,7 @@ PreferencesDialogV2::PreferencesDialogV2()
addPreferencePage(new PreferencesLanguage());
addPreferencePage(new PreferencesGeoreference());
addPreferencePage(new PreferencesDefaults());
+ addPreferencePage(new PreferencesUnits());
refreshPages();
connect(pagesList, &QListWidget::currentRowChanged,