diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-10-18 21:58:04 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-10-24 09:51:37 -0700 |
commit | 255f561afffb26bae5c4de0c5fe2d60effb41103 (patch) | |
tree | 7b2987886ad228dfabbbde11aaae933dd903e91d | |
parent | 694776eed1f88327237240e122e15b274a87994b (diff) | |
download | subsurface-255f561afffb26bae5c4de0c5fe2d60effb41103.tar.gz |
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>
-rw-r--r-- | core/file.c | 2 | ||||
-rw-r--r-- | core/git-access.h | 4 | ||||
-rw-r--r-- | core/load-git.c | 4 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 2 |
4 files changed, 8 insertions, 4 deletions
diff --git a/core/file.c b/core/file.c index e6fe28df6..85537868f 100644 --- a/core/file.c +++ b/core/file.c @@ -325,7 +325,7 @@ int parse_file(const char *filename, struct dive_table *table, struct trip_table return -1; } 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) { /* we don't want to display an error if this was the default file */ diff --git a/core/git-access.h b/core/git-access.h index 2c99f9e52..30c7b7da6 100644 --- a/core/git-access.h +++ b/core/git-access.h @@ -15,13 +15,15 @@ enum remote_transport { RT_OTHER, RT_HTTPS, RT_SSH }; struct git_oid; struct git_repository; +struct device_table; #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 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 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, - 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 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; diff --git a/core/load-git.c b/core/load-git.c index bcb311100..dc7a3e8dc 100644 --- a/core/load-git.c +++ b/core/load-git.c @@ -47,6 +47,7 @@ struct git_parser_state { struct dive_table *table; struct trip_table *trips; struct dive_site_table *sites; + struct device_table *devices; struct filter_preset_table *filter_presets; 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. */ 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; 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.trips = trips; state.sites = sites; + state.devices = devices; state.filter_presets = filter_presets; if (repo == dummy_git_repository) diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 5d1d02b48..8f28ab912 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -708,7 +708,7 @@ void QMLManager::loadDivesWithValidCredentials() } if (git != dummy_git_repository) { 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 { 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); |