From aaca7a4b96669c03d44523321b9a4248538954c8 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Thu, 26 Mar 2015 22:53:44 +0100 Subject: [PATCH 2/2] Make the image hashing non-blocking again ...it had become blocking with 1e3700c1 Signed-off-by: Robert C. Helling --- qt-ui/mainwindow.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 2c17648..ad4bff0 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -319,6 +319,15 @@ void MainWindow::on_actionSaveAs_triggered() file_save_as(); } +void learnImageDirs(QStringList dirnames) +{ + QList > futures; + foreach (QString dir, dirnames) { + futures << QtConcurrent::run(learnImages, QDir(dir), 10, false); + } + DivePictureModel::instance()->updateDivePicturesWhenDone(futures); +} + void MainWindow::on_actionHash_images_triggered() { QFileDialog dialog(this, tr("Traverse image directories"), lastUsedDir(), filter()); @@ -327,15 +336,11 @@ 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) { - futures << QtConcurrent::run(learnImages, QDir(dir), 10, false); - } - DivePictureModel::instance()->updateDivePicturesWhenDone(futures); + QtConcurrent::run(learnImageDirs,dirnames); } ProfileWidget2 *MainWindow::graphics() const -- 1.9.5 (Apple Git-50.3)