Partial revert commit af67de8

This commit is contained in:
Jonas Kvinge
2020-07-19 19:07:12 +02:00
parent e043a03eb6
commit ff73dd2183
11 changed files with 39 additions and 17 deletions

View File

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