diff options
Diffstat (limited to 'qt-ui/downloadfromdivecomputer.cpp')
-rw-r--r-- | qt-ui/downloadfromdivecomputer.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp index 8c0f81aa5..a341a0c37 100644 --- a/qt-ui/downloadfromdivecomputer.cpp +++ b/qt-ui/downloadfromdivecomputer.cpp @@ -382,8 +382,23 @@ void DownloadFromDCWidget::onDownloadThreadFinished() // down in the dive_table for (int i = dive_table.nr - 1; i >= previousLast; i--) delete_single_dive(i); - } else { + } else if (dive_table.nr) { + int i; + struct dive *d; + // remember the last downloaded dive (on most dive computers this will be the chronologically + // first new dive) and select it again after processing all the dives + MainWindow::instance()->dive_list()->unselectDives(); + get_dive(dive_table.nr - 1)->selected = true; process_dives(true, preferDownloaded()); + // after process_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(); + for_each_dive(i, d) { + if (d->selected) + break; + } + d->selected = false; + MainWindow::instance()->dive_list()->selectDive(i, true); } } else if (currentState == CANCELLING || currentState == CANCELLED){ if (import_thread_cancelled) { |