summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2020-11-23 17:17:17 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-12-03 13:26:55 -0800
commit5e34531e326d8f9b67cddd5f5af34265381be0d0 (patch)
tree813b870470bb22e6cfa2b2fdb2cd39d68779840f
parenteac59a79d8e9589ccc3f1c8879478fd1b9502eef (diff)
downloadsubsurface-5e34531e326d8f9b67cddd5f5af34265381be0d0.tar.gz
downloader: wait for download thread
Signed-off-by: Robert C. Helling <helling@atdotde.de>
-rw-r--r--cli-downloader.cpp1
-rw-r--r--qt-models/diveimportedmodel.cpp5
-rw-r--r--qt-models/diveimportedmodel.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/cli-downloader.cpp b/cli-downloader.cpp
index 77053c0c7..1cf97f487 100644
--- a/cli-downloader.cpp
+++ b/cli-downloader.cpp
@@ -36,4 +36,5 @@ void cliDownloader(const char *vendor, const char *product, const char *device)
// before we start, remember where the dive_table ended
diveImportedModel->startDownload();
+ diveImportedModel->waitForDownload();
}
diff --git a/qt-models/diveimportedmodel.cpp b/qt-models/diveimportedmodel.cpp
index 0e2c07cc6..118b0a419 100644
--- a/qt-models/diveimportedmodel.cpp
+++ b/qt-models/diveimportedmodel.cpp
@@ -144,6 +144,11 @@ void DiveImportedModel::startDownload()
thread.start();
}
+void DiveImportedModel::waitForDownload()
+{
+ thread.wait();
+}
+
std::tuple<struct dive_table, struct dive_site_table, struct device_table> DiveImportedModel::consumeTables()
{
beginResetModel();
diff --git a/qt-models/diveimportedmodel.h b/qt-models/diveimportedmodel.h
index f43057d26..adede9220 100644
--- a/qt-models/diveimportedmodel.h
+++ b/qt-models/diveimportedmodel.h
@@ -28,6 +28,7 @@ public:
int numDives() const;
Q_INVOKABLE void recordDives(int flags = IMPORT_PREFER_IMPORTED | IMPORT_IS_DOWNLOADED);
Q_INVOKABLE void startDownload();
+ Q_INVOKABLE void waitForDownload();
DownloadThread thread;
public