mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core: move get_same_dive_site() into dive_site_table class
This was the only dive_site_table function that accessed to global divelog, which is odd. Make it consistent with the others. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
4ac2486a23
commit
512eada468
4 changed files with 7 additions and 10 deletions
|
@ -99,10 +99,9 @@ ImportDiveSites::ImportDiveSites(dive_site_table sites, const QString &source)
|
||||||
setText(Command::Base::tr("import dive sites from %1").arg(source));
|
setText(Command::Base::tr("import dive sites from %1").arg(source));
|
||||||
|
|
||||||
for (auto &new_ds: sites) {
|
for (auto &new_ds: sites) {
|
||||||
// Don't import dive sites that already exist. Currently we only check for
|
// Don't import dive sites that already exist.
|
||||||
// the same name. We might want to be smarter here and merge dive site data, etc.
|
// We might want to be smarter here and merge dive site data, etc.
|
||||||
struct dive_site *old_ds = get_same_dive_site(*new_ds);
|
if (divelog.sites->get_same(*new_ds))
|
||||||
if (old_ds)
|
|
||||||
continue;
|
continue;
|
||||||
sitesToAdd.push_back(std::move(new_ds));
|
sitesToAdd.push_back(std::move(new_ds));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1130,7 +1130,7 @@ void process_imported_dives(struct divelog *import_log, int flags,
|
||||||
|
|
||||||
/* If dive sites already exist, use the existing versions. */
|
/* If dive sites already exist, use the existing versions. */
|
||||||
for (auto &new_ds: *import_log->sites) {
|
for (auto &new_ds: *import_log->sites) {
|
||||||
struct dive_site *old_ds = get_same_dive_site(*new_ds);
|
struct dive_site *old_ds = divelog.sites->get_same(*new_ds);
|
||||||
|
|
||||||
/* Check if it dive site is actually used by new dives. */
|
/* Check if it dive site is actually used by new dives. */
|
||||||
for (j = 0; j < import_log->dives->nr; j++) {
|
for (j = 0; j < import_log->dives->nr; j++) {
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include "divesite.h"
|
#include "divesite.h"
|
||||||
#include "dive.h"
|
#include "dive.h"
|
||||||
#include "divelist.h"
|
#include "divelist.h"
|
||||||
#include "divelog.h"
|
|
||||||
#include "errorhelper.h"
|
#include "errorhelper.h"
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
#include "membuffer.h"
|
#include "membuffer.h"
|
||||||
|
@ -179,10 +178,9 @@ static bool same(const struct dive_site &a, const struct dive_site &b)
|
||||||
&& a.notes == b.notes;
|
&& a.notes == b.notes;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct dive_site *get_same_dive_site(const struct dive_site &site)
|
dive_site *dive_site_table::get_same(const struct dive_site &site) const
|
||||||
{
|
{
|
||||||
return get_by_predicate(*divelog.sites,
|
return get_by_predicate(*this, [site](const auto &ds) { return same(*ds, site); });
|
||||||
[site](const auto &ds) { return same(*ds, site); });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void dive_site::merge(dive_site &b)
|
void dive_site::merge(dive_site &b)
|
||||||
|
|
|
@ -52,11 +52,11 @@ public:
|
||||||
dive_site *get_by_gps(const location_t *) const;
|
dive_site *get_by_gps(const location_t *) const;
|
||||||
dive_site *get_by_gps_and_name(const std::string &name, const location_t *) const;
|
dive_site *get_by_gps_and_name(const std::string &name, const location_t *) const;
|
||||||
dive_site *get_by_gps_proximity(location_t, int distance) const;
|
dive_site *get_by_gps_proximity(location_t, int distance) const;
|
||||||
|
dive_site *get_same(const struct dive_site &) const;
|
||||||
void purge_empty();
|
void purge_empty();
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dive_site *unregister_dive_from_dive_site(struct dive *d);
|
struct dive_site *unregister_dive_from_dive_site(struct dive *d);
|
||||||
struct dive_site *get_same_dive_site(const struct dive_site &); // accesses global dive list
|
|
||||||
|
|
||||||
/* Make pointer-to-dive_site a "Qt metatype" so that we can pass it through QVariants */
|
/* Make pointer-to-dive_site a "Qt metatype" so that we can pass it through QVariants */
|
||||||
Q_DECLARE_METATYPE(dive_site *);
|
Q_DECLARE_METATYPE(dive_site *);
|
||||||
|
|
Loading…
Add table
Reference in a new issue