Disable info widget when canceling 'add dive' for a first dive

One more corner case that we cover correctly.

Reported-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2013-09-24 12:32:18 -07:00
parent 446ab45858
commit 72f0516f6d
2 changed files with 9 additions and 6 deletions

View file

@ -883,11 +883,11 @@ void delete_single_dive(int idx)
if (!dive)
return; /* this should never happen */
remove_dive_from_trip(dive);
if (dive->selected)
deselect_dive(idx);
for (i = idx; i < dive_table.nr - 1; i++)
dive_table.dives[i] = dive_table.dives[i+1];
dive_table.dives[--dive_table.nr] = NULL;
if (dive->selected)
amount_selected--;
/* free all allocations */
free(dive->dc.sample);
if (dive->location)

View file

@ -469,6 +469,11 @@ void MainTab::rejectChanges()
ui->notes->setText(notesBackup[NULL].notes );
ui->location->setText(notesBackup[NULL].location);
}else{
if (editMode == ADD) {
// clean up
delete_single_dive(selected_dive);
DivePlannerPointsModel::instance()->cancelPlan();
}
struct dive *curr = current_dive;
ui->notes->setText(notesBackup[curr].notes );
ui->location->setText(notesBackup[curr].location);
@ -520,10 +525,8 @@ void MainTab::rejectChanges()
ui->watertemp->setPalette(p);
ui->dateTimeEdit->setPalette(p);
if (editMode == ADD) {
// clean up
delete_single_dive(selected_dive);
selected_dive = -1;
DivePlannerPointsModel::instance()->cancelPlan();
// more clean up
updateDiveInfo(selected_dive);
mainWindow()->showProfile();
mainWindow()->refreshDisplay();
}