Introduce an on/off switch for calculating ndl/tts

Let the user choose if the calculation of ndl and tts is worth the time
it takes.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2013-11-12 23:09:57 +01:00 committed by Dirk Hohndel
parent dbd4a471ec
commit 4bb8368a20
6 changed files with 38 additions and 0 deletions

1
pref.h
View file

@ -28,6 +28,7 @@ struct preferences {
short profile_calc_ceiling;
short calc_ceiling_3m_incr;
short calc_all_tissues;
short calc_ndl_tts;
short gflow;
short gfhigh;
int map_provider;

View file

@ -1014,6 +1014,11 @@ static void calculate_deco_information(struct dive *dive, struct divecomputer *d
entry->ceilings[k] = deco_allowed_depth(tolerated_by_tissue[k], surface_pressure, dive, 1);
/* calculate DECO STOP / TTS / NDL */
/* bail if we shouldn't */
if (!prefs.calc_ndl_tts)
continue;
/* We are going to mess up deco state, so store it for later restore */
char *cache_data = NULL;
cache_deco_state(tissue_tolerance, &cache_data);

View file

@ -618,6 +618,7 @@ void MainWindow::readSettings()
GET_BOOL("dcceiling", profile_dc_ceiling);
GET_BOOL("calcceiling", profile_calc_ceiling);
GET_BOOL("calcceiling3m", calc_ceiling_3m_incr);
GET_BOOL("calcndltts", calc_ndl_tts);
GET_BOOL("calcalltissues", calc_all_tissues);
GET_INT("gflow", gflow);
GET_INT("gfhigh", gfhigh);

View file

@ -46,6 +46,8 @@ void PreferencesDialog::setUiFromPrefs()
ui.increment_3m->setChecked(prefs.calc_ceiling_3m_incr);
ui.all_tissues->setEnabled(ui.calculated_ceiling->isChecked());
ui.all_tissues->setChecked(prefs.calc_all_tissues);
ui.calc_ndl_tts->setEnabled(ui.calculated_ceiling->isChecked());
ui.calc_ndl_tts->setChecked(prefs.calc_ndl_tts);
ui.groupBox->setEnabled(ui.personalize->isChecked());
ui.gflow->setValue(prefs.gflow);
@ -104,6 +106,7 @@ void PreferencesDialog::setPrefsFromUi()
SP(profile_red_ceiling, ui.red_ceiling);
SP(profile_calc_ceiling, ui.calculated_ceiling);
SP(calc_ceiling_3m_incr, ui.increment_3m);
SP(calc_ndl_tts, ui.calc_ndl_tts);
SP(calc_all_tissues, ui.all_tissues);
prefs.gflow = ui.gflow->value();
prefs.gfhigh = ui.gfhigh->value();
@ -142,6 +145,7 @@ void PreferencesDialog::syncSettings()
SB("redceiling", ui.red_ceiling);
SB("calcceiling", ui.calculated_ceiling);
SB("calcceiling3m", ui.increment_3m);
SB("calcndltts", ui.calc_ndl_tts);
SB("calcalltissues", ui.all_tissues);
s.setValue("gflow", ui.gflow->value());
s.setValue("gfhigh", ui.gfhigh->value());

View file

@ -711,6 +711,16 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="calc_ndl_tts">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Calculate NDL/TTS</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
@ -997,6 +1007,22 @@
</hint>
</hints>
</connection>
<connection>
<sender>calculated_ceiling</sender>
<signal>clicked(bool)</signal>
<receiver>calc_ndl_tts</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>298</x>
<y>327</y>
</hint>
<hint type="destinationlabel">
<x>668</x>
<y>327</y>
</hint>
</hints>
</connection>
<connection>
<sender>dc_reported_ceiling</sender>
<signal>clicked(bool)</signal>

View file

@ -22,6 +22,7 @@ struct preferences default_prefs = {
.profile_red_ceiling = FALSE,
.profile_calc_ceiling = FALSE,
.calc_ceiling_3m_incr = FALSE,
.calc_ndl_tts = FALSE,
.gflow = 30,
.gfhigh = 75,
.font_size = 14.0,