profile: replot profile when settings changed

It would be nice to have a single "any setting changed" signal and
not to have to listen to all of them individually...

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2023-05-20 15:37:11 +02:00
parent 196a33ba4b
commit 9ab7819fd1
3 changed files with 34 additions and 26 deletions

View file

@ -5,8 +5,9 @@
#include "core/dive.h" #include "core/dive.h"
#include "core/errorhelper.h" #include "core/errorhelper.h"
#include "core/pref.h" #include "core/pref.h"
#include "core/settings/qPrefTechnicalDetails.h"
#include "core/settings/qPrefDisplay.h" #include "core/settings/qPrefDisplay.h"
#include "core/settings/qPrefPartialPressureGas.h"
#include "core/settings/qPrefTechnicalDetails.h"
#include "qt-quick/chartitem.h" #include "qt-quick/chartitem.h"
#include <QAbstractAnimation> #include <QAbstractAnimation>
@ -60,6 +61,31 @@ ProfileView::ProfileView(QQuickItem *parent) : ChartView(parent, ProfileZValue::
setAcceptHoverEvents(true); setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::LeftButton); setAcceptedMouseButtons(Qt::LeftButton);
auto tec = qPrefTechnicalDetails::instance();
connect(tec, &qPrefTechnicalDetails::calcalltissuesChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::calcceilingChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::gflowChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::gfhighChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::dcceilingChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::eadChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::calcceiling3mChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::modChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::calcndlttsChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::hrgraphChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::rulergraphChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::show_sacChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::zoomed_plotChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::decoinfoChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::show_pictures_in_profileChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::tankbarChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::percentagegraphChanged , this, &ProfileView::replot);
connect(tec, &qPrefTechnicalDetails::infoboxChanged , this, &ProfileView::replot);
auto pp_gas = qPrefPartialPressureGas::instance();
connect(pp_gas, &qPrefPartialPressureGas::pheChanged, this, &ProfileView::replot);
connect(pp_gas, &qPrefPartialPressureGas::pn2Changed, this, &ProfileView::replot);
connect(pp_gas, &qPrefPartialPressureGas::po2Changed, this, &ProfileView::replot);
} }
ProfileView::ProfileView() : ProfileView(nullptr) ProfileView::ProfileView() : ProfileView(nullptr)
@ -81,6 +107,12 @@ void ProfileView::plotAreaChanged(const QSizeF &s)
plotDive(d, dc, RenderFlags::Instant); plotDive(d, dc, RenderFlags::Instant);
} }
void ProfileView::replot()
{
if (!empty)
plotDive(d, dc, RenderFlags::None);
}
void ProfileView::clear() void ProfileView::clear()
{ {
//clearPictures(); //clearPictures();

View file

@ -41,6 +41,7 @@ private:
void plotAreaChanged(const QSizeF &size) override; void plotAreaChanged(const QSizeF &size) override;
void resetPointers() override; void resetPointers() override;
void replot();
}; };
#endif #endif

View file

@ -91,31 +91,6 @@ ProfileWidget2::ProfileWidget2(DivePlannerPointsModel *plannerModelIn, double dp
diveDepthTableView->show(); diveDepthTableView->show();
#endif #endif
auto tec = qPrefTechnicalDetails::instance();
connect(tec, &qPrefTechnicalDetails::calcalltissuesChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::calcceilingChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::gflowChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::gfhighChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::dcceilingChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::eadChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::calcceiling3mChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::modChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::calcndlttsChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::hrgraphChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::rulergraphChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::show_sacChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::zoomed_plotChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::decoinfoChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::show_pictures_in_profileChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::tankbarChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::percentagegraphChanged , this, &ProfileWidget2::actionRequestedReplot);
connect(tec, &qPrefTechnicalDetails::infoboxChanged , this, &ProfileWidget2::actionRequestedReplot);
auto pp_gas = qPrefPartialPressureGas::instance();
connect(pp_gas, &qPrefPartialPressureGas::pheChanged, this, &ProfileWidget2::actionRequestedReplot);
connect(pp_gas, &qPrefPartialPressureGas::pn2Changed, this, &ProfileWidget2::actionRequestedReplot);
connect(pp_gas, &qPrefPartialPressureGas::po2Changed, this, &ProfileWidget2::actionRequestedReplot);
setProfileState(); setProfileState();
} }