mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core: move process_import_dives() and related functions to divelog
These functions accessed the global divelog make this explicit. I'm still not happy about the situation, because these functions access global state, such as the selection. I think these should be moved up the call-chain. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
b34116e2e2
commit
176f544106
14 changed files with 500 additions and 494 deletions
|
|
@ -12,6 +12,14 @@
|
|||
|
||||
struct device;
|
||||
|
||||
/* flags for process_imported_dives() */
|
||||
struct import_flags {
|
||||
static constexpr int prefer_imported = 1 << 0;
|
||||
static constexpr int is_downloaded = 1 << 1;
|
||||
static constexpr int merge_all_trips = 1 << 2;
|
||||
static constexpr int add_to_new_trip = 1 << 3;
|
||||
};
|
||||
|
||||
struct divelog {
|
||||
dive_table dives;
|
||||
trip_table trips;
|
||||
|
|
@ -29,6 +37,19 @@ struct divelog {
|
|||
void delete_multiple_dives(const std::vector<dive *> &dives);
|
||||
void clear();
|
||||
bool is_trip_before_after(const struct dive *dive, bool before) const;
|
||||
|
||||
struct process_imported_dives_result {
|
||||
dive_table dives_to_add;
|
||||
std::vector<dive *> dives_to_remove;
|
||||
trip_table trips_to_add;
|
||||
dive_site_table sites_to_add;
|
||||
std::vector<device> devices_to_add;
|
||||
};
|
||||
|
||||
/* divelist core logic functions */
|
||||
process_imported_dives_result process_imported_dives(struct divelog &import_log, int flags); // import_log will be consumed
|
||||
void process_loaded_dives();
|
||||
void add_imported_dives(struct divelog &log, int flags); // log will be consumed
|
||||
};
|
||||
|
||||
extern struct divelog divelog;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue