Use lambdas for QtConcurrent::run instead of NewClosure

This commit is contained in:
Jonas Kvinge
2020-07-18 16:28:39 +02:00
parent 425dac478e
commit af67de8aa6
12 changed files with 25 additions and 47 deletions

View File

@@ -27,10 +27,9 @@
#include <QObject>
#include <QtGlobal>
#include <QtConcurrentRun>
#include <QtConcurrent>
#include <QThread>
#include <QMutex>
#include <QFuture>
#include <QDataStream>
#include <QMimeData>
#include <QIODevice>
@@ -52,7 +51,6 @@
#include <QtDebug>
#include "core/application.h"
#include "core/closure.h"
#include "core/database.h"
#include "core/iconloader.h"
#include "core/logging.h"
@@ -859,18 +857,15 @@ void CollectionModel::LazyPopulate(CollectionItem *parent, const bool signal) {
}
void CollectionModel::ResetAsync() {
QFuture<CollectionModel::QueryResult> future = QtConcurrent::run(this, &CollectionModel::RunQuery, root_);
NewClosure(future, this, SLOT(ResetAsyncQueryFinished(QFuture<CollectionModel::QueryResult>)), future);
(void)QtConcurrent::run([=]() { ResetAsyncQueryFinished(RunQuery(root_)); });
}
void CollectionModel::ResetAsyncQueryFinished(QFuture<CollectionModel::QueryResult> future) {
void CollectionModel::ResetAsyncQueryFinished(QueryResult result) {
if (QThread::currentThread() != thread() && QThread::currentThread() != backend_->thread()) {
backend_->Close();
}
const struct QueryResult result = future.result();
BeginReset();
root_->lazy_loaded = true;