From 1e3700c11fc58801f78ac8fd94a672a7af2238b5 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Tue, 10 Mar 2015 10:22:34 -0700 Subject: 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 --- qt-ui/mainwindow.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'qt-ui/mainwindow.cpp') diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index e7235f9f8..f8335affb 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -327,14 +327,15 @@ void MainWindow::on_actionHash_images_triggered() dialog.setLabelText(QFileDialog::Accept, tr("Scan")); dialog.setLabelText(QFileDialog::Reject, tr("Cancel")); QStringList dirnames; + QList > futures; if (dialog.exec()) dirnames = dialog.selectedFiles(); if (dirnames.isEmpty()) return; foreach (QString dir, dirnames) { - QtConcurrent::run(learnImages, QDir(dir), 10, false); + futures << QtConcurrent::run(learnImages, QDir(dir), 10, false); } - + DivePictureModel::instance()->updateDivePicturesWhenDone(futures); } ProfileWidget2 *MainWindow::graphics() const -- cgit v1.2.3-70-g09d2