mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Planner: assign a dive number if the right number seems obvious
Use the same logic as we do for newly added dives. As a side effect this patch appears to fix the issues with getting the newly planned dive selected. Fixes #692 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
88fe28636e
commit
0f1381f160
4 changed files with 16 additions and 4 deletions
|
@ -1040,3 +1040,11 @@ void process_dives(bool is_imported, bool prefer_imported)
|
||||||
mark_divelist_changed(true);
|
mark_divelist_changed(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_dive_nr_for_current_dive()
|
||||||
|
{
|
||||||
|
if (dive_table.nr == 1)
|
||||||
|
current_dive->number = 1;
|
||||||
|
else if (selected_dive == dive_table.nr - 1 && get_dive(dive_table.nr - 2)->number)
|
||||||
|
current_dive->number = get_dive(dive_table.nr - 2)->number + 1;
|
||||||
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ extern void find_new_trip_start_time(dive_trip_t *trip);
|
||||||
extern struct dive *first_selected_dive();
|
extern struct dive *first_selected_dive();
|
||||||
extern struct dive *last_selected_dive();
|
extern struct dive *last_selected_dive();
|
||||||
extern bool is_trip_before_after(struct dive *dive, bool before);
|
extern bool is_trip_before_after(struct dive *dive, bool before);
|
||||||
|
extern void set_dive_nr_for_current_dive();
|
||||||
|
|
||||||
#ifdef DEBUG_TRIP
|
#ifdef DEBUG_TRIP
|
||||||
extern void dump_selection(void);
|
extern void dump_selection(void);
|
||||||
|
|
|
@ -771,10 +771,7 @@ void MainTab::acceptChanges()
|
||||||
}
|
}
|
||||||
if (editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
|
if (editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
|
||||||
fixup_dive(current_dive);
|
fixup_dive(current_dive);
|
||||||
if (dive_table.nr == 1)
|
set_dive_nr_for_current_dive();
|
||||||
current_dive->number = 1;
|
|
||||||
else if (selected_dive == dive_table.nr - 1 && get_dive(dive_table.nr - 2)->number)
|
|
||||||
current_dive->number = get_dive(dive_table.nr - 2)->number + 1;
|
|
||||||
MainWindow::instance()->showProfile();
|
MainWindow::instance()->showProfile();
|
||||||
mark_divelist_changed(true);
|
mark_divelist_changed(true);
|
||||||
DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::NOTHING);
|
DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::NOTHING);
|
||||||
|
|
|
@ -402,6 +402,12 @@ void MainWindow::planCanceled()
|
||||||
|
|
||||||
void MainWindow::planCreated()
|
void MainWindow::planCreated()
|
||||||
{
|
{
|
||||||
|
// get the new dive selected and assign a number if reasonable
|
||||||
|
dive_list()->unselectDives();
|
||||||
|
select_dive(dive_table.nr - 1);
|
||||||
|
dive_list()->selectDive(selected_dive);
|
||||||
|
set_dive_nr_for_current_dive();
|
||||||
|
|
||||||
showProfile();
|
showProfile();
|
||||||
refreshDisplay();
|
refreshDisplay();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue