summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/coreplugin/locator/directoryfilter.cpp22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/plugins/coreplugin/locator/directoryfilter.cpp b/src/plugins/coreplugin/locator/directoryfilter.cpp
index bca78cc8bc..1d7bba06e4 100644
--- a/src/plugins/coreplugin/locator/directoryfilter.cpp
+++ b/src/plugins/coreplugin/locator/directoryfilter.cpp
@@ -382,28 +382,26 @@ void DirectoryFilter::setExclusionFilters(const QStringList &exclusionFilters)
m_exclusionFilters = exclusionFilters;
}
-static void refresh(QFutureInterface<FilePaths> &future, const FilePaths &directories,
+static void refresh(QPromise<FilePaths> &promise, const FilePaths &directories,
const QStringList &filters, const QStringList &exclusionFilters,
const QString &displayName)
{
SubDirFileIterator subDirIterator(directories, filters, exclusionFilters);
- future.setProgressRange(0, subDirIterator.maxProgress());
+ promise.setProgressRange(0, subDirIterator.maxProgress());
FilePaths files;
const auto end = subDirIterator.end();
for (auto it = subDirIterator.begin(); it != end; ++it) {
- if (future.isCanceled()) {
- future.setProgressValueAndText(subDirIterator.currentProgress(),
+ if (promise.isCanceled()) {
+ promise.setProgressValueAndText(subDirIterator.currentProgress(),
Tr::tr("%1 filter update: canceled").arg(displayName));
return;
}
files << (*it).filePath;
- if (future.isProgressUpdateNeeded() || future.progressValue() == 0) {
- future.setProgressValueAndText(subDirIterator.currentProgress(),
- Tr::tr("%1 filter update: %n files", nullptr, files.size()).arg(displayName));
- }
+ promise.setProgressValueAndText(subDirIterator.currentProgress(),
+ Tr::tr("%1 filter update: %n files", nullptr, files.size()).arg(displayName));
}
- future.setProgressValue(subDirIterator.maxProgress());
- future.reportResult(files);
+ promise.setProgressValue(subDirIterator.maxProgress());
+ promise.addResult(files);
}
using namespace Utils::Tasking;
@@ -418,8 +416,8 @@ std::optional<TaskItem> DirectoryFilter::refreshRecipe()
return TaskAction::StopWithDone; // Group stops, skips async task
};
const auto asyncSetup = [this](AsyncTask<FilePaths> &async) {
- async.setAsyncCallData(&refresh, m_directories, m_filters, m_exclusionFilters,
- displayName());
+ async.setConcurrentCallData(&refresh, m_directories, m_filters, m_exclusionFilters,
+ displayName());
};
const auto asyncDone = [this](const AsyncTask<FilePaths> &async) {
m_files = async.isResultAvailable() ? async.result() : FilePaths();