aboutsummaryrefslogtreecommitdiffstats
path: root/profile-widget
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-12-29 23:03:38 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-01-10 15:57:39 -0800
commit9560dbf8db668da7abf0490cd42ef416dfe65072 (patch)
tree4780b727fb1dcb62998815cb03d1016eae3b116d /profile-widget
parentf5e60b9618ce514686b487739af4a7690c28d1a2 (diff)
downloadsubsurface-9560dbf8db668da7abf0490cd42ef416dfe65072.tar.gz
profile: unconditionally replot chart when settings change
The code tried to only replot the profile if necessary, notably when in edit mode or the ceilings are shown. That seems like pointless premature optimization, which only complicates things: The profile is replot every time a "dive handle" is moved, which means that we depend on the replotting being reasonably fast. Why should it then not be redrawn if the settings change? Let's remove this, as it makes control flow easier to reason about. This makes the isPlotZoomed member variable redundant. Remove it. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'profile-widget')
-rw-r--r--profile-widget/profilewidget2.cpp21
-rw-r--r--profile-widget/profilewidget2.h1
2 files changed, 1 insertions, 21 deletions
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
index f5d4fd889..546a618d8 100644
--- a/profile-widget/profilewidget2.cpp
+++ b/profile-widget/profilewidget2.cpp
@@ -118,7 +118,6 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
#ifndef SUBSURFACE_MOBILE
toolTipItem(new ToolTipItem()),
#endif
- isPlotZoomed(prefs.zoomed_plot),// no! bad use of prefs. 'PreferencesDialog::loadSettings' NOT CALLED yet.
profileYAxis(new DepthAxis(this)),
gasYAxis(new PartialGasPressureAxis(*dataModel, this)),
temperatureAxis(new TemperatureAxis(this)),
@@ -155,9 +154,6 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
shouldCalculateMaxDepth(true),
fontPrintScale(1.0)
{
- // would like to be able to ASSERT here that PreferencesDialog::loadSettings has been called.
- isPlotZoomed = prefs.zoomed_plot; // now it seems that 'prefs' has loaded our preferences
-
init_plot_info(&plotInfo);
setupSceneAndFlags();
@@ -830,16 +826,6 @@ void ProfileWidget2::actionRequestedReplot(bool)
void ProfileWidget2::settingsChanged()
{
- // if we are showing calculated ceilings then we have to replot()
- // because the GF could have changed; otherwise we try to avoid replot()
- // but always replot in PLAN/ADD/EDIT mode to avoid a bug of DiveHandlers not
- // being redrawn on setting changes, causing them to become unattached
- // to the profile
- bool needReplot;
- if (currentState == ADD || currentState == PLAN || currentState == EDIT)
- needReplot = true;
- else
- needReplot = prefs.calcceiling;
#ifndef SUBSURFACE_MOBILE
gasYAxis->update(); // Initialize ticks of partial pressure graph
if ((prefs.percentagegraph||prefs.hrgraph) && PP_GRAPHS_ENABLED) {
@@ -896,12 +882,7 @@ void ProfileWidget2::settingsChanged()
}
tankItem->setVisible(prefs.tankbar);
- if (prefs.zoomed_plot != isPlotZoomed) {
- isPlotZoomed = prefs.zoomed_plot;
- needReplot = true;
- }
- if (needReplot)
- replot();
+ replot();
}
void ProfileWidget2::resizeEvent(QResizeEvent *event)
diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h
index 50c1fe91a..5c6e95be5 100644
--- a/profile-widget/profilewidget2.h
+++ b/profile-widget/profilewidget2.h
@@ -184,7 +184,6 @@ private:
#ifndef SUBSURFACE_MOBILE
ToolTipItem *toolTipItem;
#endif
- bool isPlotZoomed;
// All those here should probably be merged into one structure,
// So it's esyer to replicate for more dives later.
// In the meantime, keep it here.