diff options
Diffstat (limited to 'profile-widget/profilewidget2.cpp')
-rw-r--r-- | profile-widget/profilewidget2.cpp | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index 7c70b15f9..ac1af3951 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -4,6 +4,9 @@ #include "core/subsurface-string.h" #include "core/qthelper.h" #include "core/profile.h" +#include "core/settings/qPrefDisplay.h" +#include "core/settings/qPrefTechnicalDetails.h" +#include "core/settings/qPrefPartialPressureGas.h" #include "profile-widget/diveeventitem.h" #include "profile-widget/divetextitem.h" #include "profile-widget/divetooltipitem.h" @@ -16,7 +19,6 @@ #include "qt-models/models.h" #include "qt-models/divepicturemodel.h" #include "core/divelist.h" -#include "core/subsurface-qt/SettingsObjectWrapper.h" #ifndef SUBSURFACE_MOBILE #include "desktop-widgets/diveplanner.h" #include "desktop-widgets/simplewidgets.h" @@ -34,7 +36,6 @@ #include <QInputDialog> #include <QDebug> #include <QWheelEvent> -#include <QSettings> #include <QMenu> #include <QElapsedTimer> @@ -341,17 +342,16 @@ 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. - connect(SettingsObjectWrapper::instance()->techDetails, &qPrefTechnicalDetails::show_ccr_setpoint_changed, o2SetpointGasItem, &PartialPressureGasItem::setVisible); - connect(SettingsObjectWrapper::instance()->techDetails, &qPrefTechnicalDetails::show_scr_ocpo2_changed, ocpo2GasItem, &PartialPressureGasItem::setVisible); - connect(SettingsObjectWrapper::instance()->techDetails, &qPrefTechnicalDetails::show_ccr_sensors_changed, ccrsensor1GasItem, &PartialPressureGasItem::setVisible); - connect(SettingsObjectWrapper::instance()->techDetails, &qPrefTechnicalDetails::show_ccr_sensors_changed, ccrsensor2GasItem, &PartialPressureGasItem::setVisible); - connect(SettingsObjectWrapper::instance()->techDetails, &qPrefTechnicalDetails::show_ccr_sensors_changed, ccrsensor3GasItem, &PartialPressureGasItem::setVisible); + connect(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_ccr_setpoint_changed, o2SetpointGasItem, &PartialPressureGasItem::setVisible); + connect(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_scr_ocpo2_changed, ocpo2GasItem, &PartialPressureGasItem::setVisible); + connect(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_ccr_sensors_changed, ccrsensor1GasItem, &PartialPressureGasItem::setVisible); + connect(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_ccr_sensors_changed, ccrsensor2GasItem, &PartialPressureGasItem::setVisible); + connect(qPrefTechnicalDetails::instance(), &qPrefTechnicalDetails::show_ccr_sensors_changed, ccrsensor3GasItem, &PartialPressureGasItem::setVisible); heartBeatAxis->setTextVisible(true); heartBeatAxis->setLinesVisible(true); @@ -595,8 +595,8 @@ void ProfileWidget2::plotDive(struct dive *d, bool force, bool doClearPictures) // special handling for the first time we display things int animSpeedBackup = 0; if (firstCall && haveFilesOnCommandLine()) { - animSpeedBackup = prefs.animation_speed; - prefs.animation_speed = 0; + animSpeedBackup = qPrefDisplay::animation_speed(); + qPrefDisplay::set_animation_speed(0); firstCall = false; } @@ -757,8 +757,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force, bool doClearPictures) qDeleteAll(eventItems); eventItems.clear(); struct event *event = currentdc->events; - struct event *ev; - struct gasmix lastgasmix = *get_gasmix(&displayed_dive, current_dc, 1, &ev, NULL); + struct gasmix lastgasmix = get_gasmix_at_time(&displayed_dive, current_dc, duration_t{1}); while (event) { #ifndef SUBSURFACE_MOBILE @@ -781,7 +780,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force, bool doClearPictures) item->setHorizontalAxis(timeAxis); item->setVerticalAxis(profileYAxis); item->setModel(dataModel); - item->setEvent(event, &lastgasmix); + item->setEvent(event, lastgasmix); item->setZValue(2); scene()->addItem(item); eventItems.push_back(item); @@ -806,7 +805,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force, bool doClearPictures) #endif diveComputerText->setText(dcText); if (haveFilesOnCommandLine() && animSpeedBackup != 0) { - prefs.animation_speed = animSpeedBackup; + qPrefDisplay::set_animation_speed(animSpeedBackup); } #ifndef SUBSURFACE_MOBILE @@ -825,7 +824,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force, bool doClearPictures) // so if we are calculation TTS / NDL then let's force that off. #ifndef SUBSURFACE_MOBILE if (measureDuration.elapsed() > 1000 && prefs.calcndltts) { - SettingsObjectWrapper::instance()->techDetails->set_calcndltts(false); + qPrefTechnicalDetails::set_calcndltts(false); report_error(qPrintable(tr("Show NDL / TTS was disabled because of excessive processing time"))); } #endif @@ -1452,7 +1451,7 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event) action->setData(event->globalPos()); QAction *splitAction = m.addAction(tr("Split dive into two"), this, SLOT(splitDive())); splitAction->setData(event->globalPos()); - struct event *ev = NULL; + const struct event *ev = NULL; enum divemode_t divemode = UNDEF_COMP_TYPE; QPointF scenePos = mapToScene(mapFromGlobal(event->globalPos())); QString gas = action->text(); @@ -1695,7 +1694,7 @@ void ProfileWidget2::changeGas() // if there is a gas change at this time stamp, remove it before adding the new one struct event *gasChangeEvent = current_dc->events; - while ((gasChangeEvent = get_next_event(gasChangeEvent, "gaschange")) != NULL) { + while ((gasChangeEvent = get_next_event_mutable(gasChangeEvent, "gaschange")) != NULL) { if (gasChangeEvent->time.seconds == seconds) { remove_event(gasChangeEvent); gasChangeEvent = current_dc->events; @@ -1710,7 +1709,7 @@ void ProfileWidget2::changeGas() tank = rx.cap(1).toInt() - 1; // we display the tank 1 based } else { qDebug() << "failed to parse tank number"; - tank = get_gasidx(&displayed_dive, &gasmix); + tank = get_gasidx(&displayed_dive, gasmix); } // add this both to the displayed dive and the current dive add_gas_switch_event(current_dive, current_dc, seconds, tank); |