summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-08-19 21:54:18 -0500
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-08-19 21:57:15 -0500
commit642ad1e0fe292895d65765dc4ac7b5df9fe42ca8 (patch)
tree8fda55a60c8ba7d28bf4b84526363084c3673fab
parentfc96daf93fa73dd4b9c125c7a3d032d3b0f0caab (diff)
downloadsubsurface-642ad1e0fe292895d65765dc4ac7b5df9fe42ca8.tar.gz
Fix crash when calling the planner twice in a row
Turns out that the fix in commit f7119bdccfb2 ("Planner: make sure no old handles are around when entering Add/Plan") was incorrect. We ONLY want to remove the existing handlers when we re-plan a dive, NOT when we call add or plan. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/mainwindow.cpp1
-rw-r--r--qt-ui/profile/profilewidget2.cpp2
-rw-r--r--qt-ui/profile/profilewidget2.h2
3 files changed, 2 insertions, 3 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index c8461aee8..17c554777 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -468,6 +468,7 @@ void MainWindow::on_actionReplanDive_triggered()
DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::PLAN);
ui.newProfile->setPlanState();
+ ui.newProfile->clearHandlers();
ui.infoPane->setCurrentIndex(PLANNERWIDGET);
DivePlannerPointsModel::instance()->loadFromDive(current_dive);
reset_cylinders(&displayed_dive, true);
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 7a5722082..675a1029c 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -870,7 +870,6 @@ void ProfileWidget2::setAddState()
return;
setProfileState();
- clearHandlers();
mouseFollowerHorizontal->setVisible(true);
mouseFollowerVertical->setVisible(true);
mouseFollowerHorizontal->setLine(timeAxis->line());
@@ -904,7 +903,6 @@ void ProfileWidget2::setPlanState()
return;
setProfileState();
- clearHandlers();
mouseFollowerHorizontal->setVisible(true);
mouseFollowerVertical->setVisible(true);
mouseFollowerHorizontal->setLine(timeAxis->line());
diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h
index dc08be3d7..af52b41bb 100644
--- a/qt-ui/profile/profilewidget2.h
+++ b/qt-ui/profile/profilewidget2.h
@@ -78,6 +78,7 @@ public:
bool isAddOrPlanner();
double getFontPrintScale();
void setFontPrintScale(double scale);
+ void clearHandlers();
State currentState;
public
@@ -175,7 +176,6 @@ private:
QList<DivePictureItem*> pictures;
void repositionDiveHandlers();
int fixHandlerIndex(DiveHandler *activeHandler);
- void clearHandlers();
friend class DiveHandler;
QHash<Qt::Key, QAction *> actionsForKeys;
bool shouldCalculateMaxTime;