diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-12-29 23:03:38 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-01-10 15:57:39 -0800 |
commit | 9560dbf8db668da7abf0490cd42ef416dfe65072 (patch) | |
tree | 4780b727fb1dcb62998815cb03d1016eae3b116d /profile-widget | |
parent | f5e60b9618ce514686b487739af4a7690c28d1a2 (diff) | |
download | subsurface-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.cpp | 21 | ||||
-rw-r--r-- | profile-widget/profilewidget2.h | 1 |
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. |