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