From d09e1272b9d2035cfb4b11150fc8c6f5dbb48dae Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Fri, 30 Jan 2015 11:16:55 +0100 Subject: [PATCH] Update ceiling when changing dive mode Without this patch, the user effectively cannot change the dive mode as any change is overwritten by replot copying current_dive over displayed_dive. The way out is not to call replot but only update the deco ceiling directly. Signed-off-by: Robert C. Helling --- qt-ui/maintab.cpp | 2 +- qt-ui/profile/profilewidget2.cpp | 5 +++++ qt-ui/profile/profilewidget2.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index c247b77..cf4981c 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -1018,7 +1018,7 @@ void MainTab::divetype_Changed(int index) displayed_dive.dc.divemode = (enum dive_comp_type) index; update_setpoint_events(&displayed_dive.dc); markChangedWidget(ui.DiveType); - MainWindow::instance()->graphics()->replot(); + MainWindow::instance()->graphics()->recalcCeiling(); } void MainTab::on_watertemp_textChanged(const QString &text) diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 924c800..99f497e 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -648,6 +648,11 @@ void ProfileWidget2::plotDive(struct dive *d, bool force) } } +void ProfileWidget2::recalcCeiling() +{ + diveCeiling->recalc(); +} + void ProfileWidget2::settingsChanged() { // if we are showing calculated ceilings then we have to replot() diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h index d594748..c0ada09 100644 --- a/qt-ui/profile/profilewidget2.h +++ b/qt-ui/profile/profilewidget2.h @@ -82,6 +82,7 @@ public: double getFontPrintScale(); void setFontPrintScale(double scale); void clearHandlers(); + void recalcCeiling(); State currentState; public -- 1.9.3 (Apple Git-50)