core: activate qPrefPartialPressureGas

remove PartialPressureGas from SettingsObjectWrapper and reference qPrefPartialPressureGas

update files using SettingsObjectWrapper/PartialPressureGas to use qPrefPartialPressureGas

this activated qPrefPartialPressureGas and removed the similar class from
SettingsObjectWrapper.

Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
jan Iversen 2018-08-11 19:55:41 +02:00 committed by Dirk Hohndel
parent 881395318c
commit 9d005888fb
8 changed files with 85 additions and 218 deletions

View file

@ -23,6 +23,7 @@ void qPref::loadSync(bool doSync)
qPrefGeocoding::instance()->loadSync(doSync);
qPrefLanguage::instance()->loadSync(doSync);
qPrefLocationService::instance()->loadSync(doSync);
qPrefPartialPressureGas::instance()->loadSync(doSync);
qPrefProxy::instance()->loadSync(doSync);
qPrefTechnicalDetails::instance()->loadSync(doSync);
qPrefUnits::instance()->loadSync(doSync);

View file

@ -8,131 +8,6 @@
#include "core/qthelper.h"
#include "core/prefs-macros.h"
PartialPressureGasSettings::PartialPressureGasSettings(QObject* parent):
QObject(parent)
{
}
bool PartialPressureGasSettings::showPo2() const
{
return prefs.pp_graphs.po2;
}
bool PartialPressureGasSettings::showPn2() const
{
return prefs.pp_graphs.pn2;
}
bool PartialPressureGasSettings::showPhe() const
{
return prefs.pp_graphs.phe;
}
double PartialPressureGasSettings::po2ThresholdMin() const
{
return prefs.pp_graphs.po2_threshold_min;
}
double PartialPressureGasSettings::po2ThresholdMax() const
{
return prefs.pp_graphs.po2_threshold_max;
}
double PartialPressureGasSettings::pn2Threshold() const
{
return prefs.pp_graphs.pn2_threshold;
}
double PartialPressureGasSettings::pheThreshold() const
{
return prefs.pp_graphs.phe_threshold;
}
void PartialPressureGasSettings::setShowPo2(bool value)
{
if (value == prefs.pp_graphs.po2)
return;
QSettings s;
s.beginGroup(group);
s.setValue("po2graph", value);
prefs.pp_graphs.po2 = value;
emit showPo2Changed(value);
}
void PartialPressureGasSettings::setShowPn2(bool value)
{
if (value == prefs.pp_graphs.pn2)
return;
QSettings s;
s.beginGroup(group);
s.setValue("pn2graph", value);
prefs.pp_graphs.pn2 = value;
emit showPn2Changed(value);
}
void PartialPressureGasSettings::setShowPhe(bool value)
{
if (value == prefs.pp_graphs.phe)
return;
QSettings s;
s.beginGroup(group);
s.setValue("phegraph", value);
prefs.pp_graphs.phe = value;
emit showPheChanged(value);
}
void PartialPressureGasSettings::setPo2ThresholdMin(double value)
{
if (value == prefs.pp_graphs.po2_threshold_min)
return;
QSettings s;
s.beginGroup(group);
s.setValue("po2thresholdmin", value);
prefs.pp_graphs.po2_threshold_min = value;
emit po2ThresholdMinChanged(value);
}
void PartialPressureGasSettings::setPo2ThresholdMax(double value)
{
if (value == prefs.pp_graphs.po2_threshold_max)
return;
QSettings s;
s.beginGroup(group);
s.setValue("po2thresholdmax", value);
prefs.pp_graphs.po2_threshold_max = value;
emit po2ThresholdMaxChanged(value);
}
void PartialPressureGasSettings::setPn2Threshold(double value)
{
if (value == prefs.pp_graphs.pn2_threshold)
return;
QSettings s;
s.beginGroup(group);
s.setValue("pn2threshold", value);
prefs.pp_graphs.pn2_threshold = value;
emit pn2ThresholdChanged(value);
}
void PartialPressureGasSettings::setPheThreshold(double value)
{
if (value == prefs.pp_graphs.phe_threshold)
return;
QSettings s;
s.beginGroup(group);
s.setValue("phethreshold", value);
prefs.pp_graphs.phe_threshold = value;
emit pheThresholdChanged(value);
}
GeneralSettingsObjectWrapper::GeneralSettingsObjectWrapper(QObject *parent) :
QObject(parent)
@ -339,7 +214,7 @@ void GeneralSettingsObjectWrapper::setFfmpegExecutable(const QString &value)
SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent):
QObject(parent),
techDetails(new qPrefTechnicalDetails(this)),
pp_gas(new PartialPressureGasSettings(this)),
pp_gas(new qPrefPartialPressureGas(this)),
facebook(new qPrefFacebook(this)),
geocoding(new qPrefGeocoding(this)),
proxy(new qPrefProxy(this)),
@ -364,7 +239,39 @@ void SettingsObjectWrapper::load()
uiLanguage(NULL);
qPrefUnits::instance()->load();
qPrefTechnicalDetails::instance()->load();
qPrefPartialPressureGas::instance()->load();
s.beginGroup("TecDetails");
GET_BOOL("mod", mod);
GET_DOUBLE("modpO2", modpO2);
GET_BOOL("ead", ead);
GET_BOOL("redceiling", redceiling);
GET_BOOL("dcceiling", dcceiling);
GET_BOOL("calcceiling", calcceiling);
GET_BOOL("calcceiling3m", calcceiling3m);
GET_BOOL("calcndltts", calcndltts);
GET_BOOL("calcalltissues", calcalltissues);
GET_BOOL("hrgraph", hrgraph);
GET_BOOL("tankbar", tankbar);
GET_BOOL("RulerBar", rulergraph);
GET_BOOL("percentagegraph", percentagegraph);
GET_INT("gflow", gflow);
GET_INT("gfhigh", gfhigh);
GET_INT("vpmb_conservatism", vpmb_conservatism);
GET_BOOL("gf_low_at_maxdepth", gf_low_at_maxdepth);
GET_BOOL("show_ccr_setpoint",show_ccr_setpoint);
GET_BOOL("show_ccr_sensors",show_ccr_sensors);
GET_BOOL("show_scr_ocpo2",show_scr_ocpo2);
GET_BOOL("zoomed_plot", zoomed_plot);
set_gf(prefs.gflow, prefs.gfhigh);
set_vpmb_conservatism(prefs.vpmb_conservatism);
GET_BOOL("show_sac", show_sac);
GET_BOOL("display_unused_tanks", display_unused_tanks);
GET_BOOL("show_average_depth", show_average_depth);
GET_BOOL("show_icd", show_icd);
GET_BOOL("show_pictures_in_profile", show_pictures_in_profile);
prefs.display_deco_mode = (deco_mode) s.value("display_deco_mode").toInt();
s.endGroup();
s.beginGroup("GeneralSettings");
GET_TXT("default_filename", default_filename);

View file

@ -13,49 +13,6 @@
* and QWidget frontends. This class will be huge, since
* I need tons of properties, one for each option. */
/* Control the state of the Partial Pressure Graphs preferences */
class PartialPressureGasSettings : public QObject {
Q_OBJECT
Q_PROPERTY(bool show_po2 READ showPo2 WRITE setShowPo2 NOTIFY showPo2Changed)
Q_PROPERTY(bool show_pn2 READ showPn2 WRITE setShowPn2 NOTIFY showPn2Changed)
Q_PROPERTY(bool show_phe READ showPhe WRITE setShowPhe NOTIFY showPheChanged)
Q_PROPERTY(double po2_threshold_min READ po2ThresholdMin WRITE setPo2ThresholdMin NOTIFY po2ThresholdMinChanged)
Q_PROPERTY(double po2_threshold_max READ po2ThresholdMax WRITE setPo2ThresholdMax NOTIFY po2ThresholdMaxChanged)
Q_PROPERTY(double pn2_threshold READ pn2Threshold WRITE setPn2Threshold NOTIFY pn2ThresholdChanged)
Q_PROPERTY(double phe_threshold READ pheThreshold WRITE setPheThreshold NOTIFY pheThresholdChanged)
public:
PartialPressureGasSettings(QObject *parent);
bool showPo2() const;
bool showPn2() const;
bool showPhe() const;
double po2ThresholdMin() const;
double po2ThresholdMax() const;
double pn2Threshold() const;
double pheThreshold() const;
public slots:
void setShowPo2(bool value);
void setShowPn2(bool value);
void setShowPhe(bool value);
void setPo2ThresholdMin(double value);
void setPo2ThresholdMax(double value);
void setPn2Threshold(double value);
void setPheThreshold(double value);
signals:
void showPo2Changed(bool value);
void showPn2Changed(bool value);
void showPheChanged(bool value);
void po2ThresholdMaxChanged(double value);
void po2ThresholdMinChanged(double value);
void pn2ThresholdChanged(double value);
void pheThresholdChanged(double value);
private:
const QString group = QStringLiteral("TecDetails");
};
class GeneralSettingsObjectWrapper : public QObject {
Q_OBJECT
Q_PROPERTY(QString default_filename READ defaultFilename WRITE setDefaultFilename NOTIFY defaultFilenameChanged)
@ -117,7 +74,7 @@ class SettingsObjectWrapper : public QObject {
Q_OBJECT
Q_PROPERTY(qPrefTechnicalDetails* techical_details MEMBER techDetails CONSTANT)
Q_PROPERTY(PartialPressureGasSettings* pp_gas MEMBER pp_gas CONSTANT)
Q_PROPERTY(qPrefPartialPressureGas* pp_gas MEMBER pp_gas CONSTANT)
Q_PROPERTY(qPrefFacebook* facebook MEMBER facebook CONSTANT)
Q_PROPERTY(qPrefGeocoding* geocoding MEMBER geocoding CONSTANT)
Q_PROPERTY(qPrefProxy* proxy MEMBER proxy CONSTANT)
@ -136,7 +93,7 @@ public:
static SettingsObjectWrapper *instance();
qPrefTechnicalDetails *techDetails;
PartialPressureGasSettings *pp_gas;
qPrefPartialPressureGas *pp_gas;
qPrefFacebook *facebook;
qPrefGeocoding *geocoding;
qPrefProxy *proxy;

View file

@ -303,9 +303,10 @@ MainWindow::MainWindow() : QMainWindow(),
connect(ui.profTissues, &QAction::triggered, this, &MainWindow::unsetProfHR);
connect(ui.profHR, &QAction::triggered, this, &MainWindow::unsetProfTissues);
connect(ui.profPhe, &QAction::triggered, sWrapper->pp_gas, &PartialPressureGasSettings::setShowPhe);
connect(ui.profPn2, &QAction::triggered, sWrapper->pp_gas, &PartialPressureGasSettings::setShowPn2);
connect(ui.profPO2, &QAction::triggered, sWrapper->pp_gas, &PartialPressureGasSettings::setShowPo2);
auto pp_gas = qPrefPartialPressureGas::instance();
connect(ui.profPhe, &QAction::triggered, pp_gas, &qPrefPartialPressureGas::set_phe);
connect(ui.profPn2, &QAction::triggered, pp_gas, &qPrefPartialPressureGas::set_pn2);
connect(ui.profPO2, &QAction::triggered, pp_gas, &qPrefPartialPressureGas::set_po2);
connect(sWrapper->techDetails, &qPrefTechnicalDetails::calcalltissues_changed , graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->techDetails, &qPrefTechnicalDetails::calcceiling_changed , graphics(), &ProfileWidget2::actionRequestedReplot);
@ -322,9 +323,9 @@ MainWindow::MainWindow() : QMainWindow(),
connect(sWrapper->techDetails, &qPrefTechnicalDetails::tankbar_changed , graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->techDetails, &qPrefTechnicalDetails::percentagegraph_changed , graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->pp_gas, &PartialPressureGasSettings::showPheChanged, graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->pp_gas, &PartialPressureGasSettings::showPn2Changed, graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->pp_gas, &PartialPressureGasSettings::showPo2Changed, graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->pp_gas, &qPrefPartialPressureGas::phe_changed, graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->pp_gas, &qPrefPartialPressureGas::pn2_changed, graphics(), &ProfileWidget2::actionRequestedReplot);
connect(sWrapper->pp_gas, &qPrefPartialPressureGas::po2_changed, graphics(), &ProfileWidget2::actionRequestedReplot);
// now let's set up some connections
connect(graphics(), &ProfileWidget2::enableToolbar ,this, &MainWindow::setEnabledToolbar);
@ -343,9 +344,9 @@ MainWindow::MainWindow() : QMainWindow(),
ui.profIncrement3m->setChecked(sWrapper->techDetails->calcceiling3m());
ui.profMod->setChecked(sWrapper->techDetails->mod());
ui.profNdl_tts->setChecked(sWrapper->techDetails->calcndltts());
ui.profPhe->setChecked(sWrapper->pp_gas->showPhe());
ui.profPn2->setChecked(sWrapper->pp_gas->showPn2());
ui.profPO2->setChecked(sWrapper->pp_gas->showPo2());
ui.profPhe->setChecked(pp_gas->phe());
ui.profPn2->setChecked(pp_gas->pn2());
ui.profPO2->setChecked(pp_gas->po2());
ui.profHR->setChecked(sWrapper->techDetails->hrgraph());
ui.profRuler->setChecked(sWrapper->techDetails->rulergraph());
ui.profSAC->setChecked(sWrapper->techDetails->show_sac());

View file

@ -58,11 +58,11 @@ void PreferencesGraph::syncSettings()
general->setPscrRatio(lrint(1000.0 / ui->pscrfactor->value()));
general->setAutoRecalculateThumbnails(ui->auto_recalculate_thumbnails->isChecked());
auto pp_gas = SettingsObjectWrapper::instance()->pp_gas;
pp_gas->setPheThreshold(ui->pheThreshold->value());
pp_gas->setPo2ThresholdMax(ui->po2ThresholdMax->value());
pp_gas->setPo2ThresholdMin(ui->po2ThresholdMin->value());
pp_gas->setPn2Threshold(ui->pn2Threshold->value());
auto pp_gas = qPrefPartialPressureGas::instance();
pp_gas->set_phe_threshold(ui->pheThreshold->value());
pp_gas->set_po2_threshold_max(ui->po2ThresholdMax->value());
pp_gas->set_po2_threshold_min(ui->po2ThresholdMin->value());
pp_gas->set_pn2_threshold(ui->pn2Threshold->value());
auto tech = qPrefTechnicalDetails::instance();
tech->set_modpO2(ui->maxpo2->value());

View file

@ -341,9 +341,9 @@ void ProfileWidget2::setupItemOnScene()
#ifndef SUBSURFACE_MOBILE
// Visibility Connections
connect(SettingsObjectWrapper::instance()->pp_gas, &PartialPressureGasSettings::showPheChanged, pheGasItem, &PartialPressureGasItem::setVisible);
connect(SettingsObjectWrapper::instance()->pp_gas, &PartialPressureGasSettings::showPo2Changed, po2GasItem, &PartialPressureGasItem::setVisible);
connect(SettingsObjectWrapper::instance()->pp_gas, &PartialPressureGasSettings::showPn2Changed, pn2GasItem, &PartialPressureGasItem::setVisible);
connect(qPrefPartialPressureGas::instance(), &qPrefPartialPressureGas::phe_changed, pheGasItem, &PartialPressureGasItem::setVisible);
connect(qPrefPartialPressureGas::instance(), &qPrefPartialPressureGas::po2_changed, po2GasItem, &PartialPressureGasItem::setVisible);
connect(qPrefPartialPressureGas::instance(), &qPrefPartialPressureGas::pn2_changed, pn2GasItem, &PartialPressureGasItem::setVisible);
//WARNING: The old code was broken, I'm not sure what should trigger the visibility of those graphs, since the old code didn't triggered them
// because it was using a wrong settings.

View file

@ -165,6 +165,7 @@ void register_qml_types()
REGISTER_TYPE(qPrefGeocoding, "SsrfGeocodingPrefs");
REGISTER_TYPE(qPrefLanguage, "SsrfLanguagePrefs");
REGISTER_TYPE(qPrefLocationService, "SsrfLocationServicePrefs");
REGISTER_TYPE(qPrefPartialPressureGas, "SsrfPartialPressureGasPrefs");
REGISTER_TYPE(qPrefProxy, "SsrfProxyPrefs");
REGISTER_TYPE(qPrefTechnicalDetails, "SsrfTechnicalDetailsPrefs");
REGISTER_TYPE(qPrefUnits, "SsrfUnitPrefs");

View file

@ -24,38 +24,38 @@ void TestPreferences::testPreferences()
auto pref = SettingsObjectWrapper::instance();
pref->load();
auto pp = pref->pp_gas;
pp->setShowPn2(false);
pp->setShowPhe(false);
pp->setShowPo2(false);
pp->setPo2ThresholdMin(1.0);
pp->setPo2ThresholdMax(2.0);
pp->setPn2Threshold(3.0);
pp->setPheThreshold(4.0);
auto pp = qPrefPartialPressureGas::instance();
pp->set_pn2(false);
pp->set_phe(false);
pp->set_po2(false);
pp->set_po2_threshold_min(1.0);
pp->set_po2_threshold_max(2.0);
pp->set_pn2_threshold(3.0);
pp->set_phe_threshold(4.0);
TEST(pp->showPn2(), false);
TEST(pp->showPhe(), false);
TEST(pp->showPo2(), false);
TEST(pp->pn2Threshold(), 3.0);
TEST(pp->pheThreshold(), 4.0);
TEST(pp->po2ThresholdMin(), 1.0);
TEST(pp->po2ThresholdMax(), 2.0);
TEST(pp->pn2(), false);
TEST(pp->phe(), false);
TEST(pp->po2(), false);
TEST(pp->pn2_threshold(), 3.0);
TEST(pp->phe_threshold(), 4.0);
TEST(pp->po2_threshold_min(), 1.0);
TEST(pp->po2_threshold_max(), 2.0);
pp->setShowPn2(true);
pp->setShowPhe(true);
pp->setShowPo2(true);
pp->setPo2ThresholdMin(4.0);
pp->setPo2ThresholdMax(5.0);
pp->setPn2Threshold(6.0);
pp->setPheThreshold(7.0);
pp->set_pn2(true);
pp->set_phe(true);
pp->set_po2(true);
pp->set_po2_threshold_min(4.0);
pp->set_po2_threshold_max(5.0);
pp->set_pn2_threshold(6.0);
pp->set_phe_threshold(7.0);
TEST(pp->showPn2(), true);
TEST(pp->showPhe(), true);
TEST(pp->showPo2(), true);
TEST(pp->pn2Threshold(), 6.0);
TEST(pp->pheThreshold(), 7.0);
TEST(pp->po2ThresholdMin(), 4.0);
TEST(pp->po2ThresholdMax(), 5.0);
TEST(pp->pn2(), true);
TEST(pp->phe(), true);
TEST(pp->po2(), true);
TEST(pp->pn2_threshold(), 6.0);
TEST(pp->phe_threshold(), 7.0);
TEST(pp->po2_threshold_min(), 4.0);
TEST(pp->po2_threshold_max(), 5.0);
auto general = pref->general_settings;
general->setDefaultFilename("filename");