mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
406e4287eb
Using gcc option "-Wfloat-conversion" is useful to catch potential conversion errors (where lrint should be used). rint returns double and still raises the same warning, this is why this change updates all rint calls to lrint. In few places, where input type is a float, corresponding lrinf is used. Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
98 lines
3.4 KiB
C++
98 lines
3.4 KiB
C++
#include "preferences_graph.h"
|
|
#include "ui_preferences_graph.h"
|
|
#include "core/prefs-macros.h"
|
|
#include "core/subsurface-qt/SettingsObjectWrapper.h"
|
|
#include <QMessageBox>
|
|
|
|
#include "qt-models/models.h"
|
|
|
|
PreferencesGraph::PreferencesGraph() : AbstractPreferencesWidget(tr("Graph"), QIcon(":graph"), 5)
|
|
{
|
|
ui = new Ui::PreferencesGraph();
|
|
ui->setupUi(this);
|
|
}
|
|
|
|
PreferencesGraph::~PreferencesGraph()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void PreferencesGraph::refreshSettings()
|
|
{
|
|
ui->pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
|
|
ui->po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
|
|
ui->pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
|
|
ui->maxpo2->setValue(prefs.modpO2);
|
|
ui->red_ceiling->setChecked(prefs.redceiling);
|
|
|
|
if (prefs.display_deco_mode == BUEHLMANN) {
|
|
ui->buehlmann->setChecked(true);
|
|
ui->vpmb->setChecked(false);
|
|
} else {
|
|
ui->buehlmann->setChecked(false);
|
|
ui->vpmb->setChecked(true);
|
|
}
|
|
|
|
ui->gflow->setValue(prefs.gflow);
|
|
ui->gfhigh->setValue(prefs.gfhigh);
|
|
ui->vpmb_conservatism->setValue(prefs.vpmb_conservatism);
|
|
ui->gf_low_at_maxdepth->setChecked(prefs.gf_low_at_maxdepth);
|
|
ui->show_ccr_setpoint->setChecked(prefs.show_ccr_setpoint);
|
|
ui->show_ccr_sensors->setChecked(prefs.show_ccr_sensors);
|
|
ui->defaultSetpoint->setValue((double)prefs.defaultsetpoint / 1000.0);
|
|
ui->psro2rate->setValue(prefs.o2consumption / 1000.0);
|
|
ui->pscrfactor->setValue(lrint(1000.0 / prefs.pscr_ratio));
|
|
|
|
ui->display_unused_tanks->setChecked(prefs.display_unused_tanks);
|
|
ui->show_average_depth->setChecked(prefs.show_average_depth);
|
|
}
|
|
|
|
void PreferencesGraph::syncSettings()
|
|
{
|
|
auto general = SettingsObjectWrapper::instance()->general_settings;
|
|
general->setDefaultSetPoint(lrint(ui->defaultSetpoint->value() * 1000.0));
|
|
general->setO2Consumption(lrint(ui->psro2rate->value() *1000.0));
|
|
general->setPscrRatio(lrint(1000.0 / ui->pscrfactor->value()));
|
|
|
|
auto pp_gas = SettingsObjectWrapper::instance()->pp_gas;
|
|
pp_gas->setPheThreshold(ui->pheThreshold->value());
|
|
pp_gas->setPo2Threshold(ui->po2Threshold->value());
|
|
pp_gas->setPn2Threshold(ui->pn2Threshold->value());
|
|
|
|
auto tech = SettingsObjectWrapper::instance()->techDetails;
|
|
tech->setModp02(ui->maxpo2->value());
|
|
tech->setRedceiling(ui->red_ceiling->isChecked());
|
|
tech->setBuehlmann(ui->buehlmann->isChecked());
|
|
tech->setGflow(ui->gflow->value());
|
|
tech->setGfhigh(ui->gfhigh->value());
|
|
tech->setVpmbConservatism(ui->vpmb_conservatism->value());
|
|
tech->setGfLowAtMaxDepth(ui->gf_low_at_maxdepth->isChecked());
|
|
tech->setShowCCRSetpoint(ui->show_ccr_setpoint->isChecked());
|
|
tech->setShowCCRSensors(ui->show_ccr_sensors->isChecked());
|
|
tech->setDisplayUnusedTanks(ui->display_unused_tanks->isChecked());
|
|
tech->setShowAverageDepth(ui->show_average_depth->isChecked());
|
|
tech->setDecoMode(ui->vpmb->isChecked() ? VPMB : BUEHLMANN);
|
|
}
|
|
|
|
#define DANGER_GF (gf > 100) ? "* { color: red; }" : ""
|
|
void PreferencesGraph::on_gflow_valueChanged(int gf)
|
|
{
|
|
ui->gflow->setStyleSheet(DANGER_GF);
|
|
}
|
|
void PreferencesGraph::on_gfhigh_valueChanged(int gf)
|
|
{
|
|
ui->gfhigh->setStyleSheet(DANGER_GF);
|
|
}
|
|
|
|
void PreferencesGraph::on_buehlmann_toggled(bool buehlmann)
|
|
{
|
|
ui->gfhigh->setEnabled(buehlmann);
|
|
ui->gflow->setEnabled(buehlmann);
|
|
ui->label_GFhigh->setEnabled(buehlmann);
|
|
ui->label_GFlow->setEnabled(buehlmann);
|
|
ui->gf_low_at_maxdepth->setEnabled(buehlmann);
|
|
ui->vpmb_conservatism->setEnabled(!buehlmann);
|
|
ui->label_VPMB->setEnabled(!buehlmann);
|
|
}
|
|
|
|
#undef DANGER_GF
|