From 59e602447b951cfdfabd8f0a067dfb8c804ee506 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Tue, 12 Mar 2019 00:25:31 +0100 Subject: Dive site: inform model of dive site addition / deletion Introduce two DiveListNotifier signals which are sent by the undo commands if dives are added to / removed from the core. The signal has the dive site and the index in the global dive site table as payload. Thus, the model has only to remove the appropriate rows. Signed-off-by: Berthold Stoeger --- desktop-widgets/command_divelist.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'desktop-widgets') diff --git a/desktop-widgets/command_divelist.cpp b/desktop-widgets/command_divelist.cpp index 59dec85c3..8da0fab46 100644 --- a/desktop-widgets/command_divelist.cpp +++ b/desktop-widgets/command_divelist.cpp @@ -133,8 +133,9 @@ DivesAndTripsToAdd DiveListBase::removeDives(DivesAndSitesToRemove &divesAndSite divesAndSitesToDelete.dives.clear(); for (dive_site *ds: divesAndSitesToDelete.sites) { - unregister_dive_site(ds); + int idx = unregister_dive_site(ds); sitesToAdd.emplace_back(ds); + emit diveListNotifier.diveSiteDeleted(ds, idx); } divesAndSitesToDelete.sites.clear(); @@ -188,7 +189,8 @@ DivesAndSitesToRemove DiveListBase::addDives(DivesAndTripsToAdd &toAdd) // Finally, add any necessary dive sites for (OwningDiveSitePtr &ds: toAdd.sites) { sites.push_back(ds.get()); - register_dive_site(ds.release()); // Return ownership to backend + int idx = register_dive_site(ds.release()); // Return ownership to backend + emit diveListNotifier.diveSiteAdded(sites.back(), idx); } toAdd.sites.clear(); -- cgit v1.2.3-70-g09d2