Core: split process_dives() in post-import and post-load versions

process_dives() is used to post-process the dive table after loading
or importing. The first parameter states whether this was after
load or import.

Especially in the light of undo, load and import are fundamentally
different things. Notably, that latter should be undo-able, whereas
the former is not. Therefore, as a first step to make import undo-able,
split the function in two versions and remove the first parameter.

It turns out the the load-version is very light. It only sets the
DC nicknames and sorts the dive-table. There seems to be no reason
to merge dives.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-09-23 12:53:35 +02:00 committed by Dirk Hohndel
parent 0ae57cfe92
commit 35b8a4f404
12 changed files with 60 additions and 49 deletions

View file

@ -947,7 +947,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
}
}
process_dives(true, false);
process_imported_dives(false);
MainWindow::instance()->refreshDisplay();
}

View file

@ -499,8 +499,8 @@ void DownloadFromDCWidget::on_ok_clicked()
dive = get_dive(dive_table.nr - 1);
if (dive != NULL) {
uniqId = get_dive(dive_table.nr - 1)->id;
process_dives(true, preferDownloaded());
// after process_dives does any merging or resorting needed, we need
process_imported_dives(preferDownloaded());
// after process_imported_dives does any merging or resorting needed, we need
// to recreate the model for the dive list so we can select the newest dive
MainWindow::instance()->recreateDiveList();
idx = get_idx_by_uniq_id(uniqId);

View file

@ -616,7 +616,7 @@ void MainWindow::on_actionCloudstorageopen_triggered()
QByteArray fileNamePtr = QFile::encodeName(filename);
if (!parse_file(fileNamePtr.data(), &dive_table))
setCurrentFile(fileNamePtr.data());
process_dives(false, false);
process_loaded_dives();
hideProgressBar();
refreshDisplay();
}
@ -1737,7 +1737,7 @@ void MainWindow::importFiles(const QStringList fileNames)
fileNamePtr = QFile::encodeName(fileNames.at(i));
parse_file(fileNamePtr.data(), &dive_table);
}
process_dives(true, false);
process_imported_dives(false);
refreshDisplay();
}
@ -1767,7 +1767,7 @@ void MainWindow::importTxtFiles(const QStringList fileNames)
DiveLogImportDialog *diveLogImport = new DiveLogImportDialog(csvFiles, this);
diveLogImport->show();
}
process_dives(true, false);
process_imported_dives(false);
refreshDisplay();
}
@ -1789,7 +1789,7 @@ void MainWindow::loadFiles(const QStringList fileNames)
}
hideProgressBar();
updateRecentFiles();
process_dives(false, false);
process_loaded_dives();
refreshDisplay();
@ -1827,7 +1827,7 @@ void MainWindow::on_actionImportDiveLog_triggered()
if (csvFiles.size()) {
DiveLogImportDialog *diveLogImport = new DiveLogImportDialog(csvFiles, this);
diveLogImport->show();
process_dives(true, false);
process_imported_dives(false);
refreshDisplay();
}

View file

@ -768,7 +768,7 @@ void DivelogsDeWebServices::buttonClicked(QAbstractButton *button)
}
/* parse file and import dives */
parse_file(QFile::encodeName(zipFile.fileName()), &dive_table);
process_dives(true, false);
process_imported_dives(false);
MainWindow::instance()->refreshDisplay();
/* store last entered user/pass in config */