mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: simplify profile repainting code
The profile repainting code that was called when a dive changed was located in a separate function. Not only did it take a redundant parameter, it also performed very weird stuff like entering and exiting plan state. That did not work at all. Replace by a simple call to plotDive() and things work much better. There was a comment about DivePlannerPointsModel and profile getting out of sync. So let's keep an eye out for that. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
8dea2ada3b
commit
a4ca3c520c
1 changed files with 1 additions and 13 deletions
|
@ -264,18 +264,6 @@ void MainTab::enableEdition(EditMode newEditMode)
|
|||
editMode = newEditMode != NONE ? newEditMode : DIVE;
|
||||
}
|
||||
|
||||
static void profileFromDive(struct dive *d)
|
||||
{
|
||||
// TODO: We have to put these manipulations into a setPlanState()/setProfileState() pair,
|
||||
// because otherwise the DivePlannerPointsModel and the profile get out of sync.
|
||||
// This can lead to crashes. Let's try to detangle these subtleties.
|
||||
MainWindow::instance()->graphics->setPlanState();
|
||||
DivePlannerPointsModel::instance()->loadFromDive(d);
|
||||
MainWindow::instance()->graphics->setReplot(true);
|
||||
MainWindow::instance()->graphics->plotDive(current_dive, true);
|
||||
MainWindow::instance()->graphics->setProfileState();
|
||||
}
|
||||
|
||||
// This function gets called if a field gets updated by an undo command.
|
||||
// Refresh the corresponding UI field.
|
||||
void MainTab::divesChanged(const QVector<dive *> &dives, DiveField field)
|
||||
|
@ -316,7 +304,7 @@ void MainTab::divesChanged(const QVector<dive *> &dives, DiveField field)
|
|||
|
||||
// If duration or depth changed, the profile needs to be replotted
|
||||
if (field.duration || field.depth)
|
||||
profileFromDive(current_dive);
|
||||
MainWindow::instance()->graphics->plotDive(current_dive, true);
|
||||
}
|
||||
|
||||
void MainTab::diveSiteEdited(dive_site *ds, int)
|
||||
|
|
Loading…
Add table
Reference in a new issue