diff options
-rw-r--r-- | qt-ui/downloadfromdivecomputer.cpp | 14 | ||||
-rw-r--r-- | qt-ui/downloadfromdivecomputer.h | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp index da3bb136b..10a3a20b8 100644 --- a/qt-ui/downloadfromdivecomputer.cpp +++ b/qt-ui/downloadfromdivecomputer.cpp @@ -286,6 +286,12 @@ void DownloadFromDCWidget::on_downloadCancelRetryButton_clicked() updateState(CANCELLING); return; } + if (currentState == DONE) { + // this means we are retrying - so we better clean out the partial + // list of downloaded dives from the last attempt + diveImportedModel->clearTable(); + clear_table(&downloadTable); + } updateState(DOWNLOADING); // you cannot cancel the dialog, just the download @@ -620,6 +626,14 @@ Qt::ItemFlags DiveImportedModel::flags(const QModelIndex &index) const return QAbstractTableModel::flags(index) | Qt::ItemIsUserCheckable; } +void DiveImportedModel::clearTable() +{ + beginRemoveRows(QModelIndex(), 0, lastIndex - firstIndex); + lastIndex = -1; + firstIndex = 0; + endRemoveRows(); +} + void DiveImportedModel::setImportedDivesIndexes(int first, int last) { Q_ASSERT(last >= first); diff --git a/qt-ui/downloadfromdivecomputer.h b/qt-ui/downloadfromdivecomputer.h index c92190b78..92db09d66 100644 --- a/qt-ui/downloadfromdivecomputer.h +++ b/qt-ui/downloadfromdivecomputer.h @@ -36,7 +36,7 @@ public: QVariant headerData(int section, Qt::Orientation orientation, int role) const; void setImportedDivesIndexes(int first, int last); Qt::ItemFlags flags(const QModelIndex &index) const; - void removeUnused(); + void clearTable(); public slots: |