summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/pref.h1
-rw-r--r--core/subsurface-qt/SettingsObjectWrapper.cpp24
-rw-r--r--core/subsurface-qt/SettingsObjectWrapper.h5
-rw-r--r--desktop-widgets/preferences/preferences_graph.cpp4
-rw-r--r--profile-widget/divetooltipitem.cpp5
-rw-r--r--profile-widget/profilewidget2.cpp4
6 files changed, 34 insertions, 9 deletions
diff --git a/core/pref.h b/core/pref.h
index c12a04078..78d49b11a 100644
--- a/core/pref.h
+++ b/core/pref.h
@@ -107,6 +107,7 @@ struct preferences {
int descrate;
int bottompo2;
int decopo2;
+ enum deco_mode display_deco_mode;
depth_t bestmixend;
int proxy_type;
char *proxy_host;
diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index 60efe9afb..34fe3dd45 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -259,6 +259,24 @@ TechnicalDetailsSettings::TechnicalDetailsSettings(QObject* parent): QObject(par
}
+deco_mode TechnicalDetailsSettings::deco() const
+{
+
+ return prefs.display_deco_mode;
+}
+
+void TechnicalDetailsSettings::setDecoMode(deco_mode d)
+{
+ if (prefs.display_deco_mode == d)
+ return;
+
+ prefs.display_deco_mode = d;
+ QSettings s;
+ s.beginGroup(group);
+ s.setValue("display_deco_mode", d);
+ emit decoModeChanged(d);
+}
+
double TechnicalDetailsSettings:: modp02() const
{
return prefs.modpO2;
@@ -2131,11 +2149,6 @@ void SettingsObjectWrapper::load()
GET_BOOL("tankbar", tankbar);
GET_BOOL("RulerBar", rulergraph);
GET_BOOL("percentagegraph", percentagegraph);
- v = s.value("buehlmann");
- if (v.isValid())
- prefs.deco_mode = v.toBool() ? BUEHLMANN : VPMB;
- else
- prefs.deco_mode = BUEHLMANN;
GET_INT("gflow", gflow);
GET_INT("gfhigh", gfhigh);
GET_INT("vpmb_conservatism", vpmb_conservatism);
@@ -2149,6 +2162,7 @@ void SettingsObjectWrapper::load()
GET_BOOL("display_unused_tanks", display_unused_tanks);
GET_BOOL("show_average_depth", show_average_depth);
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");
diff --git a/core/subsurface-qt/SettingsObjectWrapper.h b/core/subsurface-qt/SettingsObjectWrapper.h
index bd12da5f5..7fdd10498 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.h
+++ b/core/subsurface-qt/SettingsObjectWrapper.h
@@ -132,6 +132,8 @@ class TechnicalDetailsSettings : public QObject {
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_pictures_in_profile READ showPicturesInProfile WRITE setShowPicturesInProfile NOTIFY showPicturesInProfileChanged)
+ Q_PROPERTY(deco_mode deco READ deco WRITE setDecoMode NOTIFY decoModeChanged)
+
public:
TechnicalDetailsSettings(QObject *parent);
@@ -160,6 +162,7 @@ public:
bool displayUnusedTanks() const;
bool showAverageDepth() const;
bool showPicturesInProfile() const;
+ deco_mode deco() const;
public slots:
void setMod(bool value);
@@ -187,6 +190,7 @@ public slots:
void setDisplayUnusedTanks(bool value);
void setShowAverageDepth(bool value);
void setShowPicturesInProfile(bool value);
+ void setDecoMode(deco_mode d);
signals:
void modpO2Changed(double value);
@@ -214,6 +218,7 @@ signals:
void displayUnusedTanksChanged(bool value);
void showAverageDepthChanged(bool value);
void showPicturesInProfileChanged(bool value);
+ void decoModeChanged(deco_mode m);
private:
const QString group = QStringLiteral("TecDetails");
diff --git a/desktop-widgets/preferences/preferences_graph.cpp b/desktop-widgets/preferences/preferences_graph.cpp
index 8f3e5e7bf..132db81ff 100644
--- a/desktop-widgets/preferences/preferences_graph.cpp
+++ b/desktop-widgets/preferences/preferences_graph.cpp
@@ -25,13 +25,14 @@ void PreferencesGraph::refreshSettings()
ui->maxpo2->setValue(prefs.modpO2);
ui->red_ceiling->setChecked(prefs.redceiling);
- if (prefs.deco_mode == BUEHLMANN) {
+ if (prefs.display_deco_mode == BUEHLMANN) {
ui->buehlmann->setChecked(true);
ui->vpmb->setChecked(false);
} else {
ui->buehlmann->setChecked(false);
ui->vpmb->setChecked(false);
}
+
ui->gflow->setValue(prefs.gflow);
ui->gfhigh->setValue(prefs.gfhigh);
ui->vpmb_conservatism->setValue(prefs.vpmb_conservatism);
@@ -70,6 +71,7 @@ void PreferencesGraph::syncSettings()
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; }" : ""
diff --git a/profile-widget/divetooltipitem.cpp b/profile-widget/divetooltipitem.cpp
index cb46e898c..e55ceb269 100644
--- a/profile-widget/divetooltipitem.cpp
+++ b/profile-widget/divetooltipitem.cpp
@@ -263,8 +263,11 @@ void ToolTipItem::refresh(const QPointF &pos)
painter.setBrush(QColor(Qt::red));
painter.drawRect(0,0,16,10);
if (entry) {
+ ProfileWidget2 *view = qobject_cast<ProfileWidget2*>(scene()->views().first());
+ Q_ASSERT(view);
+
painter.setPen(QColor(0, 0, 0, 255));
- if (prefs.deco_mode == BUEHLMANN)
+ if ((view->currentState == ProfileWidget2::PLAN && prefs.deco_mode == BUEHLMANN) || prefs.display_deco_mode == BUEHLMANN)
painter.drawLine(0, 60 - entry->gfline / 2, 16, 60 - entry->gfline / 2);
painter.drawLine(0, 60 - AMB_PERCENTAGE * (entry->pressures.n2 + entry->pressures.he) / entry->ambpressure / 2,
16, 60 - AMB_PERCENTAGE * (entry->pressures.n2 + entry->pressures.he) / entry->ambpressure /2);
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
index 65bdb0969..44e06eafb 100644
--- a/profile-widget/profilewidget2.cpp
+++ b/profile-widget/profilewidget2.cpp
@@ -558,7 +558,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
// this copies the dive and makes copies of all the relevant additional data
copy_dive(d, &displayed_dive);
#ifndef SUBSURFACE_MOBILE
- if (prefs.deco_mode == VPMB)
+ if ((currentState == PLAN && prefs.deco_mode == VPMB) || prefs.display_deco_mode == VPMB)
decoModelParameters->setText(QString("VPM-B +%1").arg(prefs.vpmb_conservatism));
else
decoModelParameters->setText(QString("GF %1/%2").arg(prefs.gflow).arg(prefs.gfhigh));
@@ -570,7 +570,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
plannerModel->deleteTemporaryPlan();
return;
}
- if (prefs.deco_mode == VPMB)
+ if ((currentState == PLAN && prefs.deco_mode == VPMB) || prefs.display_deco_mode == VPMB)
decoModelParameters->setText(QString("VPM-B +%1").arg(diveplan.vpmb_conservatism));
else
decoModelParameters->setText(QString("GF %1/%2").arg(diveplan.gflow).arg(diveplan.gfhigh));