summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-02-27 16:01:28 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-04-02 13:53:23 -0700
commit71e117669d835c477c9a4eec4b4d84f91962f8f7 (patch)
treeb195f2c051b981efcd161bb73eb9ac42befcc8e1
parent51b16a43c4e4251504d233b24318067f077ee5b6 (diff)
downloadsubsurface-71e117669d835c477c9a4eec4b4d84f91962f8f7.tar.gz
profile: populate dive handlers when switching to edit/plan mode
The dive handlers are only updated by signals. This means that switching into edit-mode has to be done in steps: 1) initialize the DivePointsPlannerModel 2) switch profile mode 3) load dive into DivePointsPlannerModel 2) and 3) cannot be exchanged, or the dive handlers are not initialized. To avoid this sandwitching of profile- and model-initialization, populate the dive handlers when switching the profile mode. Thus, the profile can be switched into edit/plan mode when the DivePointsPlannerModel is fully initialized. This will be important in upcoming commits, when the initialization of the dive is moved from the profile to the DivePointsPlannerModel. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--desktop-widgets/mainwindow.cpp2
-rw-r--r--profile-widget/profilewidget2.cpp6
2 files changed, 7 insertions, 1 deletions
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index 92a2c11a0..8126acf10 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -1518,9 +1518,9 @@ void MainWindow::editCurrentDive()
disableShortcuts();
copy_dive(current_dive, &displayed_dive); // Work on a copy of the dive
DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::ADD);
+ DivePlannerPointsModel::instance()->loadFromDive(&displayed_dive);
graphics->setAddState(&displayed_dive, 0);
setApplicationState(ApplicationState::EditDive);
- DivePlannerPointsModel::instance()->loadFromDive(&displayed_dive);
mainTab->enableEdition();
}
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
index d0c58c8ab..8c1783998 100644
--- a/profile-widget/profilewidget2.cpp
+++ b/profile-widget/profilewidget2.cpp
@@ -1300,6 +1300,9 @@ void ProfileWidget2::setAddState(const dive *d, int dc)
diveCeiling->setVisible(true);
decoModelParameters->setVisible(true);
setBackgroundBrush(QColor("#A7DCFF"));
+
+ pointsReset();
+ repositionDiveHandlers();
}
void ProfileWidget2::setPlanState(const dive *d, int dc)
@@ -1328,6 +1331,9 @@ void ProfileWidget2::setPlanState(const dive *d, int dc)
diveCeiling->setVisible(true);
decoModelParameters->setVisible(true);
setBackgroundBrush(QColor("#D7E3EF"));
+
+ pointsReset();
+ repositionDiveHandlers();
}
#endif