core: move dive-site functions into class

In analogy to the previous commit for dive-site-table.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2024-05-11 15:01:37 +02:00 committed by bstoeger
parent 76c52c87a3
commit 2de6f69c19
20 changed files with 69 additions and 71 deletions

View file

@ -69,7 +69,7 @@ dive *DiveListBase::addDive(DiveToAdd &d)
if (d.trip)
add_dive_to_trip(d.dive.get(), d.trip);
if (d.site) {
add_dive_to_dive_site(d.dive.get(), d.site);
d.site->add_dive(d.dive.get());
diveSiteCountChanged(d.site);
}
dive *res = d.dive.release(); // Give up ownership of dive

View file

@ -344,7 +344,7 @@ void MergeDiveSites::redo()
// the dives in the sitesToAdd vector.
for (const std::unique_ptr<dive_site> &site: sitesToAdd) {
for (dive *d: site->dives) {
add_dive_to_dive_site(d, ds);
ds->add_dive(d);
divesChanged.push_back(d);
}
}
@ -385,7 +385,7 @@ ApplyGPSFixes::ApplyGPSFixes(const std::vector<DiveAndLocation> &fixes)
} else {
ds = divelog.sites->create(dl.name.toStdString());
ds->location = dl.location;
add_dive_to_dive_site(dl.d, ds);
ds->add_dive(dl.d);
dl.d->dive_site = nullptr; // This will be set on redo()
sitesToAdd.emplace_back(ds);
}

View file

@ -346,7 +346,7 @@ QString EditDepth::fieldName() const
void EditDiveSite::set(struct dive *d, struct dive_site *dive_site) const
{
unregister_dive_from_dive_site(d);
add_dive_to_dive_site(d, dive_site);
dive_site->add_dive(d);
}
struct dive_site *EditDiveSite::data(struct dive *d) const
@ -1478,7 +1478,7 @@ void EditDive::exchangeDives()
std::swap(*newDive, *oldDive);
fulltext_register(oldDive);
if (newDiveSite)
add_dive_to_dive_site(oldDive, newDiveSite);
newDiveSite->add_dive(oldDive);
newDiveSite = oldDiveSite; // remember the previous dive site
invalidate_dive_cache(oldDive);

View file

@ -200,7 +200,7 @@ void AddPictures::swapDiveSites()
unregister_dive_from_dive_site(entry.d); // the dive-site pointer in the dive is now NULL
std::swap(ds, entry.ds);
if (ds)
add_dive_to_dive_site(entry.d, ds);
ds->add_dive(entry.d);
emit diveListNotifier.divesChanged(QVector<dive *>{ entry.d }, DiveField::DIVESITE);
}