summaryrefslogtreecommitdiffstats
path: root/qt-ui/divepicturewidget.cpp
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-03-10 10:22:34 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-03-10 10:22:34 -0700
commit1e3700c11fc58801f78ac8fd94a672a7af2238b5 (patch)
treed1e62e6a2fd687ff0c6b203a57680e1031c44747 /qt-ui/divepicturewidget.cpp
parent44b55bd1a220531c5d62e8bce01d27392de2dbee (diff)
downloadsubsurface-1e3700c11fc58801f78ac8fd94a672a7af2238b5.tar.gz
Don't call UI functions from helper code
This may seem much more complicated but actually is much cleaner. Add each thread we start to the list of future results and add a new UI function that updates the UI once all of the threads have finished. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/divepicturewidget.cpp')
-rw-r--r--qt-ui/divepicturewidget.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index a0d209b6d..1baceeb7e 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -4,6 +4,7 @@
#include "divelist.h"
#include <QtConcurrentMap>
#include <QtConcurrentRun>
+#include <QFuture>
#include <QDir>
#include <QCryptographicHash>
#include <mainwindow.h>
@@ -53,6 +54,14 @@ SPixmap scaleImages(picturepointer picture)
return ret;
}
+void DivePictureModel::updateDivePicturesWhenDone(QList<QFuture<void> > futures)
+{
+ Q_FOREACH (QFuture<void> f, futures) {
+ f.waitForFinished();
+ }
+ updateDivePictures();
+}
+
void DivePictureModel::updateDivePictures()
{
if (numberOfPictures != 0) {