subsurface/core/settings/qPrefTechnicalDetails.cpp
Robert C. Helling c9d8b4f605 Add button to toggle deco info in info box
The info box can get longish. Offer the user to turn
off display of deco information (surface GF and
individual ceilings).

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2019-02-05 14:18:14 +01:00

159 lines
4.6 KiB
C++

// SPDX-License-Identifier: GPL-2.0
#include "qPrefTechnicalDetails.h"
#include "qPrefPrivate.h"
static const QString group = QStringLiteral("TecDetails");
qPrefTechnicalDetails::qPrefTechnicalDetails(QObject *parent) : QObject(parent)
{
}
qPrefTechnicalDetails *qPrefTechnicalDetails::instance()
{
static qPrefTechnicalDetails *self = new qPrefTechnicalDetails;
return self;
}
void qPrefTechnicalDetails::loadSync(bool doSync)
{
disk_calcalltissues(doSync);
disk_calcceiling(doSync);
disk_calcceiling3m(doSync);
disk_calcndltts(doSync);
disk_dcceiling(doSync);
disk_display_deco_mode(doSync);
disk_display_unused_tanks(doSync);
disk_ead(doSync);
disk_gfhigh(doSync);
disk_gflow(doSync);
disk_gf_low_at_maxdepth(doSync);
disk_hrgraph(doSync);
disk_mod(doSync);
disk_modpO2(doSync);
disk_percentagegraph(doSync);
disk_redceiling(doSync);
disk_rulergraph(doSync);
disk_show_average_depth(doSync);
disk_show_ccr_sensors(doSync);
disk_show_ccr_setpoint(doSync);
disk_show_icd(doSync);
disk_show_pictures_in_profile(doSync);
disk_show_sac(doSync);
disk_show_scr_ocpo2(doSync);
disk_tankbar(doSync);
disk_vpmb_conservatism(doSync);
disk_zoomed_plot(doSync);
}
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcalltissues", calcalltissues);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcceiling", calcceiling);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcceiling3m", calcceiling3m);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "calcndltts", calcndltts);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "decoinfo", decoinfo);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "dcceiling", dcceiling);
HANDLE_PREFERENCE_ENUM(TechnicalDetails, deco_mode, "display_deco_mode", display_deco_mode);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "display_unused_tanks", display_unused_tanks);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "ead", ead);
void qPrefTechnicalDetails::set_gfhigh(int value)
{
if (value != prefs.gfhigh) {
prefs.gfhigh = value;
disk_gfhigh(true);
emit instance()->gfhighChanged(value);
}
}
void qPrefTechnicalDetails::disk_gfhigh(bool doSync)
{
if (doSync) {
if (prefs.gfhigh)
qPrefPrivate::propSetValue(keyFromGroupAndName(group, "gfhigh"), prefs.gfhigh, default_prefs.gfhigh);
} else {
prefs.gfhigh = qPrefPrivate::propValue(keyFromGroupAndName(group, "gfhigh"), default_prefs.gfhigh).toInt();
set_gf(-1, prefs.gfhigh);
}
}
void qPrefTechnicalDetails::set_gflow(int value)
{
if (value != prefs.gflow) {
prefs.gflow = value;
disk_gflow(true);
emit instance()->gflowChanged(value);
}
}
void qPrefTechnicalDetails::disk_gflow(bool doSync)
{
if (doSync) {
if (prefs.gflow)
qPrefPrivate::propSetValue(keyFromGroupAndName(group, "gflow"), prefs.gflow, default_prefs.gflow);
} else {
prefs.gflow = qPrefPrivate::propValue(keyFromGroupAndName(group, "gflow"), default_prefs.gflow).toInt();
set_gf(prefs.gflow, -1);
}
}
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "gf_low_at_maxdepth", gf_low_at_maxdepth);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "hrgraph", hrgraph);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "mod", mod);
HANDLE_PREFERENCE_DOUBLE(TechnicalDetails, "modpO2", modpO2);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "percentagegraph", percentagegraph);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "redceiling", redceiling);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "RulerBar", rulergraph);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_average_depth", show_average_depth);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_ccr_sensors", show_ccr_sensors);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_ccr_setpoint", show_ccr_setpoint);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_icd", show_icd);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_pictures_in_profile", show_pictures_in_profile);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_sac", show_sac);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "show_scr_ocpo2", show_scr_ocpo2);
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "tankbar", tankbar);
void qPrefTechnicalDetails::set_vpmb_conservatism(int value)
{
if (value != prefs.vpmb_conservatism) {
prefs.vpmb_conservatism = value;
disk_vpmb_conservatism(true);
emit instance()->vpmb_conservatismChanged(value);
}
}
void qPrefTechnicalDetails::disk_vpmb_conservatism(bool doSync)
{
if (doSync) {
if (prefs.vpmb_conservatism)
qPrefPrivate::propSetValue(keyFromGroupAndName(group, "vpmb_conservatism"), prefs.vpmb_conservatism, default_prefs.vpmb_conservatism);
} else {
prefs.vpmb_conservatism = qPrefPrivate::propValue(keyFromGroupAndName(group, "vpmb_conservatism"), default_prefs.vpmb_conservatism).toInt();
set_vpmb_conservatism(prefs.vpmb_conservatism);
}
}
HANDLE_PREFERENCE_BOOL(TechnicalDetails, "zoomed_plot", zoomed_plot);