| 
									
										
										
										
											2017-04-27 20:26:05 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2015-09-25 17:07:04 -03:00
										 |  |  | #include "preferences_units.h"
 | 
					
						
							|  |  |  | #include "ui_preferences_units.h"
 | 
					
						
							| 
									
										
										
										
											2016-04-04 22:02:03 -07:00
										 |  |  | #include "core/prefs-macros.h"
 | 
					
						
							|  |  |  | #include "core/qthelper.h"
 | 
					
						
							| 
									
										
										
										
											2016-08-10 14:10:38 -03:00
										 |  |  | #include "core/subsurface-qt/SettingsObjectWrapper.h"
 | 
					
						
							| 
									
										
										
										
											2015-09-25 17:07:04 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | PreferencesUnits::PreferencesUnits(): AbstractPreferencesWidget(tr("Units"),QIcon(":units"),1), ui(new Ui::PreferencesUnits()) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	ui->setupUi(this); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PreferencesUnits::~PreferencesUnits() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void PreferencesUnits::refreshSettings() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	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); | 
					
						
							| 
									
										
										
										
											2017-05-06 13:44:22 -07:00
										 |  |  | 	ui->duration_mixed->setChecked(prefs.units.duration_units == units::MIXED); | 
					
						
							|  |  |  | 	ui->duration_no_hours->setChecked(prefs.units.duration_units == units::MINUTES_ONLY); | 
					
						
							|  |  |  | 	ui->duration_show_hours->setChecked(prefs.units.duration_units == units::ALWAYS_HOURS); | 
					
						
							| 
									
										
										
										
											2015-09-25 17:07:04 -03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-10-02 11:09:13 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | void PreferencesUnits::syncSettings() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-08-10 14:10:38 -03:00
										 |  |  | 	auto units = SettingsObjectWrapper::instance()->unit_settings; | 
					
						
							| 
									
										
										
										
											2015-10-02 11:09:13 -03:00
										 |  |  | 	QString unitSystem[] = {"metric", "imperial", "personal"}; | 
					
						
							|  |  |  | 	short unitValue = ui->metric->isChecked() ? METRIC : (ui->imperial->isChecked() ? IMPERIAL : PERSONALIZE); | 
					
						
							| 
									
										
										
										
											2016-08-10 14:10:38 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	units->setUnitSystem(unitSystem[unitValue]); | 
					
						
							|  |  |  | 	units->setTemperature(ui->fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS); | 
					
						
							|  |  |  | 	units->setLength(ui->feet->isChecked() ? units::FEET : units::METERS); | 
					
						
							|  |  |  | 	units->setPressure(ui->psi->isChecked() ? units::PSI : units::BAR); | 
					
						
							|  |  |  | 	units->setVolume(ui->cuft->isChecked() ? units::CUFT : units::LITER); | 
					
						
							|  |  |  | 	units->setWeight(ui->lbs->isChecked() ? units::LBS : units::KG); | 
					
						
							|  |  |  | 	units->setVerticalSpeedTime(ui->vertical_speed_minutes->isChecked() ? units::MINUTES : units::SECONDS); | 
					
						
							|  |  |  | 	units->setCoordinatesTraditional(ui->gpsTraditional->isChecked()); | 
					
						
							| 
									
										
										
										
											2017-05-06 13:44:22 -07:00
										 |  |  | 	units->setDurationUnits(ui->duration_mixed->isChecked() ? units::MIXED : (ui->duration_no_hours->isChecked() ? units::MINUTES_ONLY : units::ALWAYS_HOURS)); | 
					
						
							| 
									
										
										
										
											2015-10-02 11:09:13 -03:00
										 |  |  | } |