mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Undo: send dive-changed signal on dive site merging
Now that we have dive-changed signal, send it on merging dive sites so that the notes tab can be updated accordingly. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
6f574c53a3
commit
8a33022f39
1 changed files with 15 additions and 3 deletions
|
@ -311,25 +311,37 @@ void MergeDiveSites::redo()
|
||||||
// First, remove all dive sites
|
// First, remove all dive sites
|
||||||
sitesToAdd = std::move(removeDiveSites(sitesToRemove));
|
sitesToAdd = std::move(removeDiveSites(sitesToRemove));
|
||||||
|
|
||||||
|
// Remember which dives changed so that we can send a single dives-edited signal
|
||||||
|
QVector<dive *> divesChanged;
|
||||||
|
|
||||||
// The dives of the above dive sites were reset to no dive sites.
|
// The dives of the above dive sites were reset to no dive sites.
|
||||||
// Add them to the merged-into dive site. Thankfully, we remember
|
// Add them to the merged-into dive site. Thankfully, we remember
|
||||||
// the dives in the sitesToAdd vector.
|
// the dives in the sitesToAdd vector.
|
||||||
for (const OwningDiveSitePtr &site: sitesToAdd) {
|
for (const OwningDiveSitePtr &site: sitesToAdd) {
|
||||||
for (int i = 0; i < site->dives.nr; ++i)
|
for (int i = 0; i < site->dives.nr; ++i) {
|
||||||
add_dive_to_dive_site(site->dives.dives[i], ds); // TODO: send dive changed signal
|
add_dive_to_dive_site(site->dives.dives[i], ds);
|
||||||
|
divesChanged.append(site->dives.dives[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
emit diveListNotifier.divesEdited(divesChanged, DiveField::DIVESITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MergeDiveSites::undo()
|
void MergeDiveSites::undo()
|
||||||
{
|
{
|
||||||
|
// Remember which dives changed so that we can send a single dives-edited signal
|
||||||
|
QVector<dive *> divesChanged;
|
||||||
|
|
||||||
// Before readding the dive sites, unregister the corresponding dives so that they can be
|
// Before readding the dive sites, unregister the corresponding dives so that they can be
|
||||||
// readded to their old dive sites.
|
// readded to their old dive sites.
|
||||||
for (const OwningDiveSitePtr &site: sitesToAdd) {
|
for (const OwningDiveSitePtr &site: sitesToAdd) {
|
||||||
for (int i = 0; i < site->dives.nr; ++i)
|
for (int i = 0; i < site->dives.nr; ++i) {
|
||||||
unregister_dive_from_dive_site(site->dives.dives[i]);
|
unregister_dive_from_dive_site(site->dives.dives[i]);
|
||||||
|
divesChanged.append(site->dives.dives[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sitesToRemove = std::move(addDiveSites(sitesToAdd));
|
sitesToRemove = std::move(addDiveSites(sitesToAdd));
|
||||||
|
emit diveListNotifier.divesEdited(divesChanged, DiveField::DIVESITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Command
|
} // namespace Command
|
||||||
|
|
Loading…
Reference in a new issue