mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive list: remember selected dives
Don't delesect dives, when unregistering them from the backend. If a previously selected dive is added, select it in the dive-list. For this purpose introduce a SELECTED_ROLE to query the DiveTripModel for selected dives. Unfortunately, when adding multiple selected dives, current_dive_changed is called for each of them, making this very slow. This will have to be fixed in subsequent commits. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
96d8727399
commit
0d98da5261
4 changed files with 29 additions and 12 deletions
|
|
@ -1065,9 +1065,9 @@ struct dive *unregister_dive(int idx)
|
|||
if (!dive)
|
||||
return NULL; /* this should never happen */
|
||||
remove_dive_from_trip(dive, false);
|
||||
if (dive->selected)
|
||||
deselect_dive(idx);
|
||||
unregister_dive_from_table(&dive_table, idx);
|
||||
if (dive->selected)
|
||||
amount_selected--;
|
||||
return dive;
|
||||
}
|
||||
|
||||
|
|
@ -1075,7 +1075,12 @@ struct dive *unregister_dive(int idx)
|
|||
* but doesn't deal with updating dive trips, etc */
|
||||
void delete_single_dive(int idx)
|
||||
{
|
||||
struct dive *dive = unregister_dive(idx);
|
||||
struct dive *dive = get_dive(idx);
|
||||
if (!dive)
|
||||
return; /* this should never happen */
|
||||
if (dive->selected)
|
||||
deselect_dive(idx);
|
||||
dive = unregister_dive(idx);
|
||||
free_dive(dive);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue