Parser: parse into custom dive site table

To extend the undo system to dive sites, the importers and downloaders
must not parse directly into the global dive site table. Instead,
pass a dive_site_table argument to parse into.

For now, always pass the global dive_site_table so that this commit
should not cause any functional change.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-02-28 22:45:17 +01:00 committed by Dirk Hohndel
parent 926b6895bb
commit 37146c5742
36 changed files with 216 additions and 185 deletions

View file

@ -551,7 +551,7 @@ void MainWindow::on_actionCloudstorageopen_triggered()
showProgressBar();
QByteArray fileNamePtr = QFile::encodeName(filename);
if (!parse_file(fileNamePtr.data(), &dive_table, &trip_table))
if (!parse_file(fileNamePtr.data(), &dive_table, &trip_table, &dive_site_table))
setCurrentFile(fileNamePtr.data());
process_loaded_dives();
Command::clear();
@ -1651,7 +1651,7 @@ void MainWindow::importFiles(const QStringList fileNames)
for (int i = 0; i < fileNames.size(); ++i) {
fileNamePtr = QFile::encodeName(fileNames.at(i));
parse_file(fileNamePtr.data(), &table, &trips);
parse_file(fileNamePtr.data(), &table, &trips, &dive_site_table);
}
QString source = fileNames.size() == 1 ? fileNames[0] : tr("multiple files");
Command::importDives(&table, &trips, IMPORT_MERGE_ALL_TRIPS, source);
@ -1668,7 +1668,7 @@ void MainWindow::loadFiles(const QStringList fileNames)
showProgressBar();
for (int i = 0; i < fileNames.size(); ++i) {
fileNamePtr = QFile::encodeName(fileNames.at(i));
if (!parse_file(fileNamePtr.data(), &dive_table, &trip_table)) {
if (!parse_file(fileNamePtr.data(), &dive_table, &trip_table, &dive_site_table)) {
setCurrentFile(fileNamePtr.data());
addRecentFile(fileNamePtr, false);
}