From 17556cc66cedc84aaf6de2bfabcafbcca8bda53c Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Mon, 13 Apr 2020 13:45:52 +0200 Subject: profile: don't interpret NULL as current_dive in plotDive() ProfileWidget2::plotDive() had this weird interface, where passing in NULL as dive would mean "show current_dive". However, most callers would already pass in current_dive. Therefore, unify and always pass in current_dive if the caller wants to draw the current dive. This allows us to interpret NULL as "show empty profile". Thus, passing in current_dive when there is no current_dive simply shows an empty profile. This makes the calling code in MainWindow::selectionChanged() simpler. Signed-off-by: Berthold Stoeger --- profile-widget/profilewidget2.cpp | 10 +++------- profile-widget/profilewidget2.h | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'profile-widget') diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index f0afc0e73..71db3d66f 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -381,8 +381,7 @@ void ProfileWidget2::setupItemOnScene() void ProfileWidget2::replot() { - dataModel->clear(); - plotDive(nullptr, true, false); + plotDive(current_dive, true, false); } void ProfileWidget2::createPPGas(PartialPressureGasItem *item, int verticalColumn, color_index_t color, color_index_t colorAlert, @@ -566,11 +565,8 @@ void ProfileWidget2::plotDive(const struct dive *d, bool force, bool doClearPict #endif if (currentState != ADD && currentState != PLAN) { if (!d) { - if (!current_dive) { - setEmptyState(); - return; - } - d = current_dive; // display the current dive + setEmptyState(); + return; } // No need to do this again if we are already showing the same dive diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h index 2e530261d..96191a1d6 100644 --- a/profile-widget/profilewidget2.h +++ b/profile-widget/profilewidget2.h @@ -76,7 +76,7 @@ public: ~ProfileWidget2(); void resetZoom(); void scale(qreal sx, qreal sy); - void plotDive(const struct dive *d = 0, bool force = false, bool clearPictures = false, bool instant = false); + void plotDive(const struct dive *d, bool force = false, bool clearPictures = false, bool instant = false); void setupItem(AbstractProfilePolygonItem *item, DiveCartesianAxis *vAxis, int vData, int hData, int zValue); void setPrintMode(bool mode, bool grayscale = false); bool getPrintMode(); -- cgit v1.2.3-70-g09d2