Handle add dive cancel correctly

This should leave the program in a consistent state after add dive was
cancelled (and do the right thing in case the dive list was empty).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2013-11-12 14:41:29 +09:00
parent a683a217b9
commit 662b1061f0
2 changed files with 5 additions and 3 deletions

View file

@ -544,6 +544,7 @@ void MainTab::resetPallete()
void MainTab::rejectChanges()
{
EditMode lastMode = editMode;
tabBar()->setTabIcon(0, QIcon()); // Notes
tabBar()->setTabIcon(1, QIcon()); // Equipment
@ -552,11 +553,11 @@ void MainTab::rejectChanges()
ui.notes->setText(notesBackup[NULL].notes );
ui.location->setText(notesBackup[NULL].location);
} else {
if (editMode == ADD) {
if (lastMode == ADD) {
// clean up
DivePlannerPointsModel::instance()->cancelPlan();
delete_single_dive(selected_dive);
} else if (editMode == MANUALLY_ADDED_DIVE ) {
} else if (lastMode == MANUALLY_ADDED_DIVE ) {
DivePlannerPointsModel::instance()->undoEdition(); // that's BOGUS... just copy the original dive back and be done with it...
}
struct dive *curr = current_dive;
@ -617,7 +618,7 @@ void MainTab::rejectChanges()
ui.equipmentButtonBox->hide();
notesBackup.clear();
resetPallete();
if (editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
if (lastMode == ADD || lastMode == MANUALLY_ADDED_DIVE) {
// more clean up
updateDiveInfo(selected_dive);
mainWindow()->showProfile();

View file

@ -68,6 +68,7 @@ MainWindow::MainWindow() : helpView(0)
void MainWindow::refreshDisplay()
{
ui.InfoWidget->reload();
ui.ProfileWidget->refresh();
ui.globe->reload();
ui.ListWidget->reload(DiveTripModel::CURRENT);
ui.ListWidget->setFocus();