mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
When the user cancels a download, reject already downloaded dives
This seems like the more logical behavior, anyway. Cancel means you didn't want the result... Fixes #341 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ad6fab9fb0
commit
50a1ed8d6e
2 changed files with 15 additions and 3 deletions
|
@ -237,6 +237,9 @@ void DownloadFromDCWidget::on_ok_clicked()
|
||||||
MainWindow *w = mainWindow();
|
MainWindow *w = mainWindow();
|
||||||
connect(thread, SIGNAL(finished()), w, SLOT(refreshDisplay()));
|
connect(thread, SIGNAL(finished()), w, SLOT(refreshDisplay()));
|
||||||
|
|
||||||
|
// before we start, remember where the dive_table ended
|
||||||
|
previousLast = dive_table.nr;
|
||||||
|
|
||||||
thread->start();
|
thread->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,10 +265,18 @@ void DownloadFromDCWidget::onDownloadThreadFinished()
|
||||||
updateState(ERROR);
|
updateState(ERROR);
|
||||||
|
|
||||||
// I'm not sure if we should really call process_dives even
|
// I'm not sure if we should really call process_dives even
|
||||||
// if there's an error or a cancelation
|
// if there's an error
|
||||||
process_dives(TRUE, preferDownloaded());
|
if (import_thread_cancelled) {
|
||||||
} else
|
// walk backwards so we don't keep moving the dives
|
||||||
|
// down in the dive_table
|
||||||
|
for (int i = dive_table.nr - 1; i >= previousLast; i--)
|
||||||
|
delete_single_dive(i);
|
||||||
|
} else {
|
||||||
|
process_dives(TRUE, preferDownloaded());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
updateState(CANCELLED);
|
updateState(CANCELLED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DownloadFromDCWidget::markChildrenAsDisabled()
|
void DownloadFromDCWidget::markChildrenAsDisabled()
|
||||||
|
|
|
@ -59,6 +59,7 @@ private:
|
||||||
QHash<QString, QStringList> productList;
|
QHash<QString, QStringList> productList;
|
||||||
QMap<QString, dc_descriptor_t *> descriptorLookup;
|
QMap<QString, dc_descriptor_t *> descriptorLookup;
|
||||||
device_data_t data;
|
device_data_t data;
|
||||||
|
int previousLast;
|
||||||
|
|
||||||
QStringListModel *vendorModel;
|
QStringListModel *vendorModel;
|
||||||
QStringListModel *productModel;
|
QStringListModel *productModel;
|
||||||
|
|
Loading…
Add table
Reference in a new issue