mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive site: pass dive-site pointer to delete_dive_site()
Instead of passing a uuid, pass a pointer to the dive site. This is small step in an effort to remove uuids. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
8de471f90e
commit
f527a70831
8 changed files with 13 additions and 14 deletions
|
@ -1687,7 +1687,7 @@ void clear_dive_file_data()
|
|||
while (dive_table.nr)
|
||||
delete_single_dive(0);
|
||||
while (dive_site_table.nr)
|
||||
delete_dive_site(get_dive_site(0)->uuid);
|
||||
delete_dive_site(get_dive_site(0));
|
||||
|
||||
clear_dive(&displayed_dive);
|
||||
|
||||
|
|
|
@ -172,12 +172,11 @@ void free_dive_site(struct dive_site *ds)
|
|||
}
|
||||
}
|
||||
|
||||
void delete_dive_site(uint32_t id)
|
||||
void delete_dive_site(struct dive_site *ds)
|
||||
{
|
||||
int nr = dive_site_table.nr;
|
||||
for (int i = 0; i < nr; i++) {
|
||||
struct dive_site *ds = get_dive_site(i);
|
||||
if (ds->uuid == id) {
|
||||
if (ds == get_dive_site(i)) {
|
||||
free_dive_site(ds);
|
||||
if (nr - 1 > i)
|
||||
memmove(&dive_site_table.dive_sites[i],
|
||||
|
@ -329,7 +328,7 @@ void merge_dive_sites(uint32_t ref, uint32_t* uuids, int count)
|
|||
for(i = 0; i < count; i++) {
|
||||
if (uuids[i] == ref)
|
||||
continue;
|
||||
delete_dive_site(uuids[i]);
|
||||
delete_dive_site(get_dive_site_by_uuid(uuids[i]));
|
||||
}
|
||||
mark_divelist_changed(true);
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ struct dive_site *alloc_or_get_dive_site(uint32_t uuid);
|
|||
int nr_of_dives_at_dive_site(struct dive_site *ds, bool select_only);
|
||||
bool is_dive_site_used(struct dive_site *ds, bool select_only);
|
||||
void free_dive_site(struct dive_site *ds);
|
||||
void delete_dive_site(uint32_t id);
|
||||
void delete_dive_site(struct dive_site *ds);
|
||||
struct dive_site *create_dive_site(const char *name, timestamp_t divetime);
|
||||
struct dive_site *create_dive_site_from_current_dive(const char *name);
|
||||
struct dive_site *create_dive_site_with_gps(const char *name, const location_t *, timestamp_t divetime);
|
||||
|
|
|
@ -890,7 +890,7 @@ static void save_divesites(git_repository *repo, struct dir *tree)
|
|||
if (d->dive_site_uuid == ds->uuid)
|
||||
d->dive_site_uuid = 0;
|
||||
}
|
||||
delete_dive_site(ds->uuid);
|
||||
delete_dive_site(ds);
|
||||
i--; // since we just deleted that one
|
||||
continue;
|
||||
} else if (ds->name &&
|
||||
|
@ -903,7 +903,7 @@ static void save_divesites(git_repository *repo, struct dir *tree)
|
|||
if (!is_dive_site_used(ds, false)) {
|
||||
if (verbose)
|
||||
fprintf(stderr, "Deleted unused auto-created dive site %s\n", ds->name);
|
||||
delete_dive_site(ds->uuid);
|
||||
delete_dive_site(ds);
|
||||
i--; // since we just deleted that one
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -605,7 +605,7 @@ void save_dives_buffer(struct membuffer *b, const bool select_only, bool anonymi
|
|||
if (d->dive_site_uuid == ds->uuid)
|
||||
d->dive_site_uuid = 0;
|
||||
}
|
||||
delete_dive_site(ds->uuid);
|
||||
delete_dive_site(ds);
|
||||
i--; // since we just deleted that one
|
||||
continue;
|
||||
} else if (ds->name &&
|
||||
|
@ -617,7 +617,7 @@ void save_dives_buffer(struct membuffer *b, const bool select_only, bool anonymi
|
|||
if (!is_dive_site_used(ds, false)) {
|
||||
if (verbose)
|
||||
fprintf(stderr, "Deleted unused auto-created dive site %s\n", ds->name);
|
||||
delete_dive_site(ds->uuid);
|
||||
delete_dive_site(ds);
|
||||
i--; // since we just deleted that one
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1193,7 +1193,7 @@ static void get_uemis_divespot(const char *mountpath, int divespot_id, struct di
|
|||
if (ods) {
|
||||
/* if the uuid's are the same, the new site is a duplicate and can be deleted */
|
||||
if (nds->uuid != ods->uuid) {
|
||||
delete_dive_site(nds->uuid);
|
||||
delete_dive_site(nds);
|
||||
dive->dive_site_uuid = ods->uuid;
|
||||
}
|
||||
}
|
||||
|
@ -1202,7 +1202,7 @@ static void get_uemis_divespot(const char *mountpath, int divespot_id, struct di
|
|||
/* if we can't load the dive site details, delete the site we
|
||||
* created in process_raw_buffer
|
||||
*/
|
||||
delete_dive_site(dive->dive_site_uuid);
|
||||
delete_dive_site(get_dive_site_by_uuid(dive->dive_site_uuid));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -888,7 +888,7 @@ void MainTab::acceptChanges()
|
|||
if (oldDs && !is_dive_site_used(oldDs, false)) {
|
||||
if (verbose)
|
||||
qDebug() << "delete now unused dive site" << (oldDs->name ? oldDs->name : "without name");
|
||||
delete_dive_site(oldDs->uuid);
|
||||
delete_dive_site(oldDs);
|
||||
MapWidget::instance()->reload();
|
||||
}
|
||||
// the code above can change the correct uuid for the displayed dive site - and the
|
||||
|
|
|
@ -97,7 +97,7 @@ bool LocationInformationModel::removeRows(int row, int, const QModelIndex&)
|
|||
beginRemoveRows(QModelIndex(), row, row);
|
||||
struct dive_site *ds = get_dive_site(row);
|
||||
if (ds)
|
||||
delete_dive_site(ds->uuid);
|
||||
delete_dive_site(ds);
|
||||
endRemoveRows();
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue