summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/downloadfromdivecomputer.cpp14
-rw-r--r--qt-ui/downloadfromdivecomputer.h2
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: