Correctly save a re-planned dive

In commit a85a219df3 ("Add ability to replan a dive that we planned
before") I completely mishandled the saving of the replanned data.
How embarrassing.

Fixes #747
See #527

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-10-27 12:35:19 -07:00
parent 5888fa0778
commit 7b4bf88313
2 changed files with 10 additions and 2 deletions

View file

@ -1179,9 +1179,15 @@ void DivePlannerPointsModel::createPlan()
//TODO: C-based function here? //TODO: C-based function here?
plan(&diveplan, &cache, isPlanner(), true); plan(&diveplan, &cache, isPlanner(), true);
if (!current_dive || displayed_dive.id != current_dive->id) if (!current_dive || displayed_dive.id != current_dive->id) {
// we were planning a new dive, not re-planning an existing on // we were planning a new dive, not re-planning an existing on
record_dive(clone_dive(&displayed_dive)); record_dive(clone_dive(&displayed_dive));
} else if (current_dive && displayed_dive.id == current_dive->id) {
// we are replanning a dive - make sure changes are reflected
// correctly in the dive structure and copy it back into the dive table
fixup_dive(&displayed_dive);
copy_dive(&displayed_dive, current_dive);
}
mark_divelist_changed(true); mark_divelist_changed(true);
// Remove and clean the diveplan, so we don't delete // Remove and clean the diveplan, so we don't delete

View file

@ -408,6 +408,8 @@ void MainWindow::planCreated()
dive_list()->selectDive(selected_dive); dive_list()->selectDive(selected_dive);
set_dive_nr_for_current_dive(); set_dive_nr_for_current_dive();
} }
// make sure our UI is in a consistent state
ui.InfoWidget->updateDiveInfo();
showProfile(); showProfile();
refreshDisplay(); refreshDisplay();
} }
@ -452,7 +454,7 @@ void MainWindow::on_actionReplanDive_triggered()
if (!plannerStateClean()) if (!plannerStateClean())
return; return;
if (!current_dive || !current_dive->dc.model || strcmp(current_dive->dc.model, "planned dive")) { if (!current_dive || !current_dive->dc.model || strcmp(current_dive->dc.model, "planned dive")) {
qDebug() << current_dive->dc.model; qDebug() << "trying to replan a dive that's not a planned dive:" << current_dive->dc.model;
return; return;
} }
ui.ListWidget->endSearch(); ui.ListWidget->endSearch();