Add a preference to turn on ICD warnings

Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
Robert C. Helling 2018-02-05 15:58:25 +01:00 committed by Jan Mulder
parent f9f1630d5c
commit 920aa613c9
7 changed files with 33 additions and 0 deletions

View file

@ -1182,6 +1182,8 @@ static void sanitize_cylinder_info(struct dive *dive)
*/ */
bool isobaric_counterdiffusion(struct gasmix *oldgasmix, struct gasmix *newgasmix, struct icd_data *results) bool isobaric_counterdiffusion(struct gasmix *oldgasmix, struct gasmix *newgasmix, struct icd_data *results)
{ {
if (!prefs.show_icd)
return false;
results->dN2 = get_he(oldgasmix) + get_o2(oldgasmix) - get_he(newgasmix) - get_o2(newgasmix); results->dN2 = get_he(oldgasmix) + get_o2(oldgasmix) - get_he(newgasmix) - get_o2(newgasmix);
results->dHe = get_he(newgasmix) - get_he(oldgasmix); results->dHe = get_he(newgasmix) - get_he(oldgasmix);
return get_he(oldgasmix) > 0 && results->dN2 > 0 && results->dHe < 0 && get_he(oldgasmix) && results->dN2 > 0 && 5 * results->dN2 > -results->dHe; return get_he(oldgasmix) > 0 && results->dN2 > 0 && results->dHe < 0 && get_he(oldgasmix) && results->dN2 > 0 && 5 * results->dN2 > -results->dHe;

View file

@ -94,6 +94,7 @@ struct preferences {
bool show_sac; bool show_sac;
bool display_unused_tanks; bool display_unused_tanks;
bool show_average_depth; bool show_average_depth;
bool show_icd;
bool zoomed_plot; bool zoomed_plot;
bool hrgraph; bool hrgraph;
bool percentagegraph; bool percentagegraph;

View file

@ -423,6 +423,11 @@ bool TechnicalDetailsSettings::showAverageDepth() const
return prefs.show_average_depth; return prefs.show_average_depth;
} }
bool TechnicalDetailsSettings::showIcd() const
{
return prefs.show_icd;
}
bool TechnicalDetailsSettings::mod() const bool TechnicalDetailsSettings::mod() const
{ {
return prefs.mod; return prefs.mod;
@ -718,6 +723,17 @@ void TechnicalDetailsSettings::setShowAverageDepth(bool value)
emit showAverageDepthChanged(value); emit showAverageDepthChanged(value);
} }
void TechnicalDetailsSettings::setShowIcd(bool value)
{
if (value == prefs.show_icd)
return;
QSettings s;
s.beginGroup(group);
s.setValue("show_icd", value);
prefs.show_icd = value;
emit showIcdChanged(value);
}
FacebookSettings::FacebookSettings(QObject *parent) : FacebookSettings::FacebookSettings(QObject *parent) :
QObject(parent), QObject(parent),
group(QStringLiteral("WebApps")), group(QStringLiteral("WebApps")),

View file

@ -139,6 +139,7 @@ class TechnicalDetailsSettings : public QObject {
Q_PROPERTY(bool show_sac READ showSac WRITE setShowSac NOTIFY showSacChanged) Q_PROPERTY(bool show_sac READ showSac WRITE setShowSac NOTIFY showSacChanged)
Q_PROPERTY(bool display_unused_tanks READ displayUnusedTanks WRITE setDisplayUnusedTanks NOTIFY displayUnusedTanksChanged) Q_PROPERTY(bool display_unused_tanks READ displayUnusedTanks WRITE setDisplayUnusedTanks NOTIFY displayUnusedTanksChanged)
Q_PROPERTY(bool show_average_depth READ showAverageDepth WRITE setShowAverageDepth NOTIFY showAverageDepthChanged) Q_PROPERTY(bool show_average_depth READ showAverageDepth WRITE setShowAverageDepth NOTIFY showAverageDepthChanged)
Q_PROPERTY(bool show_icd READ showIcd WRITE setShowIcd NOTIFY showIcdChanged)
Q_PROPERTY(bool show_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged) Q_PROPERTY(bool show_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged)
Q_PROPERTY(deco_mode deco READ deco WRITE setDecoMode NOTIFY decoModeChanged) Q_PROPERTY(deco_mode deco READ deco WRITE setDecoMode NOTIFY decoModeChanged)
@ -168,6 +169,7 @@ public:
bool showSac() const; bool showSac() const;
bool displayUnusedTanks() const; bool displayUnusedTanks() const;
bool showAverageDepth() const; bool showAverageDepth() const;
bool showIcd() const;
bool showPicturesInProfile() const; bool showPicturesInProfile() const;
deco_mode deco() const; deco_mode deco() const;
@ -195,6 +197,7 @@ public slots:
void setShowSac(bool value); void setShowSac(bool value);
void setDisplayUnusedTanks(bool value); void setDisplayUnusedTanks(bool value);
void setShowAverageDepth(bool value); void setShowAverageDepth(bool value);
void setShowIcd(bool value);
void setShowPicturesInProfile(bool value); void setShowPicturesInProfile(bool value);
void setDecoMode(deco_mode d); void setDecoMode(deco_mode d);
@ -222,6 +225,7 @@ signals:
void showSacChanged(bool value); void showSacChanged(bool value);
void displayUnusedTanksChanged(bool value); void displayUnusedTanksChanged(bool value);
void showAverageDepthChanged(bool value); void showAverageDepthChanged(bool value);
void showIcdChanged(bool value);
void showPicturesInProfileChanged(bool value); void showPicturesInProfileChanged(bool value);
void decoModeChanged(deco_mode m); void decoModeChanged(deco_mode m);

View file

@ -47,6 +47,7 @@ struct preferences default_prefs = {
.show_sac = false, .show_sac = false,
.display_unused_tanks = false, .display_unused_tanks = false,
.show_average_depth = true, .show_average_depth = true,
.show_icd = false,
.ascrate75 = 9000 / 60, .ascrate75 = 9000 / 60,
.ascrate50 = 9000 / 60, .ascrate50 = 9000 / 60,
.ascratestops = 9000 / 60, .ascratestops = 9000 / 60,

View file

@ -46,6 +46,7 @@ void PreferencesGraph::refreshSettings()
ui->display_unused_tanks->setChecked(prefs.display_unused_tanks); ui->display_unused_tanks->setChecked(prefs.display_unused_tanks);
ui->show_average_depth->setChecked(prefs.show_average_depth); ui->show_average_depth->setChecked(prefs.show_average_depth);
ui->show_icd->setChecked(prefs.show_icd);
} }
void PreferencesGraph::syncSettings() void PreferencesGraph::syncSettings()
@ -72,6 +73,7 @@ void PreferencesGraph::syncSettings()
tech->setShowCCRSensors(ui->show_ccr_sensors->isChecked()); tech->setShowCCRSensors(ui->show_ccr_sensors->isChecked());
tech->setDisplayUnusedTanks(ui->display_unused_tanks->isChecked()); tech->setDisplayUnusedTanks(ui->display_unused_tanks->isChecked());
tech->setShowAverageDepth(ui->show_average_depth->isChecked()); tech->setShowAverageDepth(ui->show_average_depth->isChecked());
tech->setShowIcd(ui->show_icd->isChecked());
tech->setDecoMode(ui->vpmb->isChecked() ? VPMB : BUEHLMANN); tech->setDecoMode(ui->vpmb->isChecked() ? VPMB : BUEHLMANN);
} }

View file

@ -354,6 +354,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0">
<widget class="QCheckBox" name="show_icd">
<property name="text">
<string>Warn for isobaric counter diffusion</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>