mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: make undo-system dive site-aware
As opposed to dive trips, dive sites were always directly added to the global table, even on import. Instead, parse the divesites into a distinct table and merge them on import. Currently, this does not do any merging of dive sites, i.e. dive sites are considered as either equal or different. Nevertheless, merging of data should be rather easy to implement and simply follow the code of the dive merging. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
37146c5742
commit
82af1b2377
22 changed files with 269 additions and 114 deletions
|
@ -484,7 +484,7 @@ void DownloadFromDCWidget::onDownloadThreadFinished()
|
|||
}
|
||||
ui.downloadCancelRetryButton->setText(tr("Retry download"));
|
||||
ui.downloadCancelRetryButton->setEnabled(true);
|
||||
diveImportedModel->repopulate(thread.table());
|
||||
diveImportedModel->repopulate(thread.table(), thread.sites());
|
||||
}
|
||||
|
||||
void DownloadFromDCWidget::on_cancel_clicked()
|
||||
|
@ -502,6 +502,7 @@ void DownloadFromDCWidget::on_ok_clicked()
|
|||
if (currentState != DONE && currentState != ERROR)
|
||||
return;
|
||||
struct dive_table *table = thread.table();
|
||||
struct dive_site_table *sites = thread.sites();
|
||||
|
||||
// delete non-selected dives
|
||||
int total = table->nr;
|
||||
|
@ -520,7 +521,7 @@ void DownloadFromDCWidget::on_ok_clicked()
|
|||
flags |= IMPORT_PREFER_IMPORTED;
|
||||
if (ui.createNewTrip->isChecked())
|
||||
flags |= IMPORT_ADD_TO_NEW_TRIP;
|
||||
Command::importDives(table, nullptr, flags, data->devName());
|
||||
Command::importDives(table, nullptr, sites, flags, data->devName());
|
||||
}
|
||||
|
||||
if (ostcFirmwareCheck && currentState == DONE)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue