diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-02-27 16:01:28 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-04-02 13:53:23 -0700 |
commit | 71e117669d835c477c9a4eec4b4d84f91962f8f7 (patch) | |
tree | b195f2c051b981efcd161bb73eb9ac42befcc8e1 | |
parent | 51b16a43c4e4251504d233b24318067f077ee5b6 (diff) | |
download | subsurface-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.cpp | 2 | ||||
-rw-r--r-- | profile-widget/profilewidget2.cpp | 6 |
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 |