From c4e287f0855472ae7b04d7a0263bc27174d2b409 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Fri, 3 Sep 2010 15:23:37 +0200 Subject: [PATCH] Wait until the filtering is finished. Unfortunately, we still have a few ILocatorFilter based classes that don't play nice with threads. --- src/plugins/locator/locatorwidget.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/locator/locatorwidget.cpp b/src/plugins/locator/locatorwidget.cpp index cc7dd54f3cf..8f29bbba7a1 100644 --- a/src/plugins/locator/locatorwidget.cpp +++ b/src/plugins/locator/locatorwidget.cpp @@ -452,9 +452,12 @@ void LocatorWidget::updateCompletionList(const QString &text) QString searchText; const QList<ILocatorFilter*> filters = filtersFor(text, searchText); - QFuture<FilterEntry> future = QtConcurrent::run(filter_helper, filters, searchText); + // cancel the old future m_entriesWatcher->future().cancel(); + + QFuture<FilterEntry> future = QtConcurrent::run(filter_helper, filters, searchText); m_entriesWatcher->setFuture(future); + future.waitForFinished(); } void LocatorWidget::updateEntries() -- GitLab