mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
git: add device-table to git-parser-state
In analogy to the xml-parser add a device-table to git's parser-state. Currently this is unused. In upcoming commits the git parser will then be changed to add device nodes in this table instead of the global device table. The long-term goal being to detach the parsers from global state and to make dive-import fully undoable. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
694776eed1
commit
255f561aff
4 changed files with 8 additions and 4 deletions
|
@ -325,7 +325,7 @@ int parse_file(const char *filename, struct dive_table *table, struct trip_table
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (git)
|
if (git)
|
||||||
return git_load_dives(git, branch, table, trips, sites, filter_presets);
|
return git_load_dives(git, branch, table, trips, sites, devices, filter_presets);
|
||||||
|
|
||||||
if ((ret = readfile(filename, &mem)) < 0) {
|
if ((ret = readfile(filename, &mem)) < 0) {
|
||||||
/* we don't want to display an error if this was the default file */
|
/* we don't want to display an error if this was the default file */
|
||||||
|
|
|
@ -15,13 +15,15 @@ enum remote_transport { RT_OTHER, RT_HTTPS, RT_SSH };
|
||||||
|
|
||||||
struct git_oid;
|
struct git_oid;
|
||||||
struct git_repository;
|
struct git_repository;
|
||||||
|
struct device_table;
|
||||||
#define dummy_git_repository ((git_repository *)3ul) /* Random bogus pointer, not NULL */
|
#define dummy_git_repository ((git_repository *)3ul) /* Random bogus pointer, not NULL */
|
||||||
extern struct git_repository *is_git_repository(const char *filename, const char **branchp, const char **remote, bool dry_run);
|
extern struct git_repository *is_git_repository(const char *filename, const char **branchp, const char **remote, bool dry_run);
|
||||||
extern int check_git_sha(const char *filename, git_repository **git_p, const char **branch_p);
|
extern int check_git_sha(const char *filename, git_repository **git_p, const char **branch_p);
|
||||||
extern int sync_with_remote(struct git_repository *repo, const char *remote, const char *branch, enum remote_transport rt);
|
extern int sync_with_remote(struct git_repository *repo, const char *remote, const char *branch, enum remote_transport rt);
|
||||||
extern int git_save_dives(struct git_repository *, const char *, const char *remote, bool select_only);
|
extern int git_save_dives(struct git_repository *, const char *, const char *remote, bool select_only);
|
||||||
extern int git_load_dives(struct git_repository *repo, const char *branch, struct dive_table *table, struct trip_table *trips,
|
extern int git_load_dives(struct git_repository *repo, const char *branch, struct dive_table *table, struct trip_table *trips,
|
||||||
struct dive_site_table *sites, struct filter_preset_table *filter_presets);
|
struct dive_site_table *sites, struct device_table *devices,
|
||||||
|
struct filter_preset_table *filter_presets);
|
||||||
extern const char *get_sha(git_repository *repo, const char *branch);
|
extern const char *get_sha(git_repository *repo, const char *branch);
|
||||||
extern int do_git_save(git_repository *repo, const char *branch, const char *remote, bool select_only, bool create_empty);
|
extern int do_git_save(git_repository *repo, const char *branch, const char *remote, bool select_only, bool create_empty);
|
||||||
extern const char *saved_git_id;
|
extern const char *saved_git_id;
|
||||||
|
|
|
@ -47,6 +47,7 @@ struct git_parser_state {
|
||||||
struct dive_table *table;
|
struct dive_table *table;
|
||||||
struct trip_table *trips;
|
struct trip_table *trips;
|
||||||
struct dive_site_table *sites;
|
struct dive_site_table *sites;
|
||||||
|
struct device_table *devices;
|
||||||
struct filter_preset_table *filter_presets;
|
struct filter_preset_table *filter_presets;
|
||||||
int o2pressure_sensor;
|
int o2pressure_sensor;
|
||||||
};
|
};
|
||||||
|
@ -1879,7 +1880,7 @@ const char *get_sha(git_repository *repo, const char *branch)
|
||||||
* or report an error and return 1 if the load failed.
|
* or report an error and return 1 if the load failed.
|
||||||
*/
|
*/
|
||||||
int git_load_dives(struct git_repository *repo, const char *branch, struct dive_table *table, struct trip_table *trips,
|
int git_load_dives(struct git_repository *repo, const char *branch, struct dive_table *table, struct trip_table *trips,
|
||||||
struct dive_site_table *sites, struct filter_preset_table *filter_presets)
|
struct dive_site_table *sites, struct device_table *devices, struct filter_preset_table *filter_presets)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct git_parser_state state = { 0 };
|
struct git_parser_state state = { 0 };
|
||||||
|
@ -1887,6 +1888,7 @@ int git_load_dives(struct git_repository *repo, const char *branch, struct dive_
|
||||||
state.table = table;
|
state.table = table;
|
||||||
state.trips = trips;
|
state.trips = trips;
|
||||||
state.sites = sites;
|
state.sites = sites;
|
||||||
|
state.devices = devices;
|
||||||
state.filter_presets = filter_presets;
|
state.filter_presets = filter_presets;
|
||||||
|
|
||||||
if (repo == dummy_git_repository)
|
if (repo == dummy_git_repository)
|
||||||
|
|
|
@ -708,7 +708,7 @@ void QMLManager::loadDivesWithValidCredentials()
|
||||||
}
|
}
|
||||||
if (git != dummy_git_repository) {
|
if (git != dummy_git_repository) {
|
||||||
appendTextToLog(QString("have repository and branch %1").arg(branch));
|
appendTextToLog(QString("have repository and branch %1").arg(branch));
|
||||||
error = git_load_dives(git, branch, &dive_table, &trip_table, &dive_site_table, &filter_preset_table);
|
error = git_load_dives(git, branch, &dive_table, &trip_table, &dive_site_table, &device_table, &filter_preset_table);
|
||||||
} else {
|
} else {
|
||||||
appendTextToLog(QString("didn't receive valid git repo, try again"));
|
appendTextToLog(QString("didn't receive valid git repo, try again"));
|
||||||
error = parse_file(fileNamePrt.data(), &dive_table, &trip_table, &dive_site_table, &device_table, &filter_preset_table);
|
error = parse_file(fileNamePrt.data(), &dive_table, &trip_table, &dive_site_table, &device_table, &filter_preset_table);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue