diff options
-rw-r--r-- | qt-ui/downloadfromdivecomputer.cpp | 18 | ||||
-rw-r--r-- | qt-ui/downloadfromdivecomputer.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/qt-ui/downloadfromdivecomputer.cpp b/qt-ui/downloadfromdivecomputer.cpp index abc6fff91..465d19a42 100644 --- a/qt-ui/downloadfromdivecomputer.cpp +++ b/qt-ui/downloadfromdivecomputer.cpp @@ -405,6 +405,9 @@ void DownloadFromDCWidget::onDownloadThreadFinished() void DownloadFromDCWidget::on_ok_clicked() { + // remove all unselected dives from the dive-list. + diveImportedModel->removeUnused(); + int uniqId, idx; // 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 @@ -573,3 +576,18 @@ void DiveImportedModel::setImportedDivesIndexes(int first, int last) memset(checkStates, true, last-first); endInsertRows(); } + +void DiveImportedModel::removeUnused() { + beginRemoveRows(QModelIndex(), 0, rowCount()-1); + endRemoveRows(); + + for(int i = lastIndex; i >= firstIndex; i-- ){ + if(!checkStates[firstIndex - i]) { + delete_single_dive(i); + } + } + + lastIndex = 0; + firstIndex = 0; + delete[] checkStates; +} diff --git a/qt-ui/downloadfromdivecomputer.h b/qt-ui/downloadfromdivecomputer.h index b567dfe0e..ea272599e 100644 --- a/qt-ui/downloadfromdivecomputer.h +++ b/qt-ui/downloadfromdivecomputer.h @@ -36,6 +36,7 @@ public: bool setData(const QModelIndex &index, const QVariant &value, int role); void setImportedDivesIndexes(int first, int last); Qt::ItemFlags flags(const QModelIndex &index) const; + void removeUnused(); private: int firstIndex; int lastIndex; |