From d09e1272b9d2035cfb4b11150fc8c6f5dbb48dae Mon Sep 17 00:00:00 2001
From: "Robert C. Helling" <[email protected]>
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 <[email protected]>
---
 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)

Hi,

I thought I had sent this earlier. This solves the replot/change dive type 
problem that I reported yesterday. Without it a changed dive type is reset to 
the initial value upon pressing apply. This is fixed and the profile gets 
updated with the new deco situation (as that depends on the dive type).

Best
Robert

--                                                                              
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO 
Robert C. Helling     Elite Master Course Theoretical and Mathematical Physics  
                      Scientific Coordinator                                   
                      Ludwig Maximilians Universitaet Muenchen, Dept. Physik    
print "Just another   Phone: +49 89 2180-4523  Theresienstr. 39, rm. B339       
    stupid .sig\n";   http://www.atdotde.de 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to