mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-02 23:20:20 +00:00
cleanup: pass location_t as value to divesite functions
These were passed as pointers, which makes no sense. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
858a0aecba
commit
90d5bab4e9
8 changed files with 16 additions and 16 deletions
|
@ -171,7 +171,7 @@ AddPictures::AddPictures(const std::vector<PictureListForAddition> &pictures) :
|
||||||
if (!ds) {
|
if (!ds) {
|
||||||
// This dive doesn't yet have a dive site -> add a new dive site.
|
// This dive doesn't yet have a dive site -> add a new dive site.
|
||||||
QString name = Command::Base::tr("unnamed dive site");
|
QString name = Command::Base::tr("unnamed dive site");
|
||||||
sitesToAdd.push_back(std::make_unique<dive_site>(qPrintable(name), &it->location));
|
sitesToAdd.push_back(std::make_unique<dive_site>(qPrintable(name), it->location));
|
||||||
sitesToSet.push_back({ p.d, sitesToAdd.back().get() });
|
sitesToSet.push_back({ p.d, sitesToAdd.back().get() });
|
||||||
} else if (!dive_site_has_gps_location(ds)) {
|
} else if (!dive_site_has_gps_location(ds)) {
|
||||||
// This dive has a dive site, but without coordinates. Let's add them.
|
// This dive has a dive site, but without coordinates. Let's add them.
|
||||||
|
|
|
@ -41,9 +41,9 @@ dive_site *dive_site_table::get_by_gps(const location_t *loc) const
|
||||||
/* to avoid a bug where we have two dive sites with different name and the same GPS coordinates
|
/* to avoid a bug where we have two dive sites with different name and the same GPS coordinates
|
||||||
* and first get the gps coordinates (reading a V2 file) and happen to get back "the other" name,
|
* and first get the gps coordinates (reading a V2 file) and happen to get back "the other" name,
|
||||||
* this function allows us to verify if a very specific name/GPS combination already exists */
|
* this function allows us to verify if a very specific name/GPS combination already exists */
|
||||||
dive_site *dive_site_table::get_by_gps_and_name(const std::string &name, const location_t *loc) const
|
dive_site *dive_site_table::get_by_gps_and_name(const std::string &name, const location_t loc) const
|
||||||
{
|
{
|
||||||
return get_by_predicate(*this, [&name, loc](const auto &ds) { return ds->location == *loc &&
|
return get_by_predicate(*this, [&name, loc](const auto &ds) { return ds->location == loc &&
|
||||||
ds->name == name; });
|
ds->name == name; });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ dive_site::dive_site(const std::string &name) : name(name)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
dive_site::dive_site(const std::string &name, const location_t *loc) : name(name), location(*loc)
|
dive_site::dive_site(const std::string &name, const location_t loc) : name(name), location(loc)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ dive_site *dive_site_table::create(const std::string &name)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* same as before, but with GPS data */
|
/* same as before, but with GPS data */
|
||||||
dive_site *dive_site_table::create(const std::string &name, const location_t *loc)
|
dive_site *dive_site_table::create(const std::string &name, const location_t loc)
|
||||||
{
|
{
|
||||||
return register_site(std::make_unique<dive_site>(name, loc)).ptr;
|
return register_site(std::make_unique<dive_site>(name, loc)).ptr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ struct dive_site
|
||||||
|
|
||||||
dive_site();
|
dive_site();
|
||||||
dive_site(const std::string &name);
|
dive_site(const std::string &name);
|
||||||
dive_site(const std::string &name, const location_t *loc);
|
dive_site(const std::string &name, const location_t loc);
|
||||||
dive_site(uint32_t uuid);
|
dive_site(uint32_t uuid);
|
||||||
~dive_site();
|
~dive_site();
|
||||||
|
|
||||||
|
@ -46,11 +46,11 @@ public:
|
||||||
dive_site *get_by_uuid(uint32_t uuid) const;
|
dive_site *get_by_uuid(uint32_t uuid) const;
|
||||||
dive_site *alloc_or_get(uint32_t uuid);
|
dive_site *alloc_or_get(uint32_t uuid);
|
||||||
dive_site *create(const std::string &name);
|
dive_site *create(const std::string &name);
|
||||||
dive_site *create(const std::string &name, const location_t *);
|
dive_site *create(const std::string &name, const location_t);
|
||||||
dive_site *find_or_create(const std::string &name);
|
dive_site *find_or_create(const std::string &name);
|
||||||
dive_site *get_by_name(const std::string &name) const;
|
dive_site *get_by_name(const std::string &name) const;
|
||||||
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;
|
dive_site *get_same(const struct dive_site &) const;
|
||||||
void purge_empty();
|
void purge_empty();
|
||||||
|
|
|
@ -636,7 +636,7 @@ static void parse_string_field(device_data_t *devdata, struct dive *dive, dc_fie
|
||||||
|
|
||||||
if (location.lat.udeg && location.lon.udeg) {
|
if (location.lat.udeg && location.lon.udeg) {
|
||||||
unregister_dive_from_dive_site(dive);
|
unregister_dive_from_dive_site(dive);
|
||||||
devdata->log->sites->create(std::string(str->value), &location)->add_dive(dive);
|
devdata->log->sites->create(std::string(str->value), location)->add_dive(dive);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,7 +177,7 @@ static void parse_dive_gps(char *line, struct git_parser_state *state)
|
||||||
if (!ds) {
|
if (!ds) {
|
||||||
ds = state->log->sites->get_by_gps(&location);
|
ds = state->log->sites->get_by_gps(&location);
|
||||||
if (!ds)
|
if (!ds)
|
||||||
ds = state->log->sites->create(std::string(), &location);
|
ds = state->log->sites->create(std::string(), location);
|
||||||
ds->add_dive(state->active_dive);
|
ds->add_dive(state->active_dive);
|
||||||
} else {
|
} else {
|
||||||
if (dive_site_has_gps_location(ds) && ds->location != location) {
|
if (dive_site_has_gps_location(ds) && ds->location != location) {
|
||||||
|
|
|
@ -1149,7 +1149,7 @@ static void gps_lat(const char *buffer, struct dive *dive, struct parser_state *
|
||||||
|
|
||||||
location.lat = parse_degrees(buffer, &end);
|
location.lat = parse_degrees(buffer, &end);
|
||||||
if (!ds) {
|
if (!ds) {
|
||||||
state->log->sites->create(std::string(), &location)->add_dive(dive);
|
state->log->sites->create(std::string(), location)->add_dive(dive);
|
||||||
} else {
|
} else {
|
||||||
if (ds->location.lat.udeg && ds->location.lat.udeg != location.lat.udeg)
|
if (ds->location.lat.udeg && ds->location.lat.udeg != location.lat.udeg)
|
||||||
report_info("Oops, changing the latitude of existing dive site id %8x name %s; not good", ds->uuid,
|
report_info("Oops, changing the latitude of existing dive site id %8x name %s; not good", ds->uuid,
|
||||||
|
@ -1166,7 +1166,7 @@ static void gps_long(const char *buffer, struct dive *dive, struct parser_state
|
||||||
|
|
||||||
location.lon = parse_degrees(buffer, &end);
|
location.lon = parse_degrees(buffer, &end);
|
||||||
if (!ds) {
|
if (!ds) {
|
||||||
state->log->sites->create(std::string(), &location)->add_dive(dive);
|
state->log->sites->create(std::string(), location)->add_dive(dive);
|
||||||
} else {
|
} else {
|
||||||
if (ds->location.lon.udeg && ds->location.lon.udeg != location.lon.udeg)
|
if (ds->location.lon.udeg && ds->location.lon.udeg != location.lon.udeg)
|
||||||
report_info("Oops, changing the longitude of existing dive site id %8x name %s; not good", ds->uuid,
|
report_info("Oops, changing the longitude of existing dive site id %8x name %s; not good", ds->uuid,
|
||||||
|
@ -1204,7 +1204,7 @@ static void gps_in_dive(const char *buffer, struct dive *dive, struct parser_sta
|
||||||
// remember the original coordinates so we can create the correct dive site later
|
// remember the original coordinates so we can create the correct dive site later
|
||||||
state->cur_location = location;
|
state->cur_location = location;
|
||||||
} else {
|
} else {
|
||||||
ds = state->log->sites->create(std::string(), &location);
|
ds = state->log->sites->create(std::string(), location);
|
||||||
}
|
}
|
||||||
ds->add_dive(dive);
|
ds->add_dive(dive);
|
||||||
} else {
|
} else {
|
||||||
|
@ -2225,7 +2225,7 @@ int parse_dlf_buffer(unsigned char *buffer, size_t size, struct divelog *log)
|
||||||
/* Measure GPS */
|
/* Measure GPS */
|
||||||
state.cur_location.lat.udeg = (int)((ptr[7] << 24) + (ptr[6] << 16) + (ptr[5] << 8) + (ptr[4] << 0));
|
state.cur_location.lat.udeg = (int)((ptr[7] << 24) + (ptr[6] << 16) + (ptr[5] << 8) + (ptr[4] << 0));
|
||||||
state.cur_location.lon.udeg = (int)((ptr[11] << 24) + (ptr[10] << 16) + (ptr[9] << 8) + (ptr[8] << 0));
|
state.cur_location.lon.udeg = (int)((ptr[11] << 24) + (ptr[10] << 16) + (ptr[9] << 8) + (ptr[8] << 0));
|
||||||
state.log->sites->create("DLF imported"s, &state.cur_location)->add_dive(state.cur_dive);
|
state.log->sites->create("DLF imported"s, state.cur_location)->add_dive(state.cur_dive);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -481,7 +481,7 @@ void add_dive_site(const char *ds_name, struct dive *dive, struct parser_state *
|
||||||
// but wait, we could have gotten this one based on GPS coords and could
|
// but wait, we could have gotten this one based on GPS coords and could
|
||||||
// have had two different names for the same site... so let's search the other
|
// have had two different names for the same site... so let's search the other
|
||||||
// way around
|
// way around
|
||||||
struct dive_site *exact_match = state->log->sites->get_by_gps_and_name(trimmed, &ds->location);
|
struct dive_site *exact_match = state->log->sites->get_by_gps_and_name(trimmed, ds->location);
|
||||||
if (exact_match) {
|
if (exact_match) {
|
||||||
unregister_dive_from_dive_site(dive);
|
unregister_dive_from_dive_site(dive);
|
||||||
exact_match->add_dive(dive);
|
exact_match->add_dive(dive);
|
||||||
|
|
|
@ -428,7 +428,7 @@ static void smtk_build_location(MdbHandle *mdb, char *idx, struct dive_site **lo
|
||||||
if (!has_location(&loc))
|
if (!has_location(&loc))
|
||||||
ds = log->sites->create(str);
|
ds = log->sites->create(str);
|
||||||
else
|
else
|
||||||
ds = log->sites->create(str, &loc);
|
ds = log->sites->create(str, loc);
|
||||||
}
|
}
|
||||||
*location = ds;
|
*location = ds;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue