diff options
-rw-r--r-- | core/pref.h | 1 | ||||
-rw-r--r-- | core/subsurface-qt/SettingsObjectWrapper.cpp | 24 | ||||
-rw-r--r-- | core/subsurface-qt/SettingsObjectWrapper.h | 5 | ||||
-rw-r--r-- | desktop-widgets/preferences/preferences_graph.cpp | 4 | ||||
-rw-r--r-- | profile-widget/divetooltipitem.cpp | 5 | ||||
-rw-r--r-- | profile-widget/profilewidget2.cpp | 4 |
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)); |