diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp
index 24a396d1fc76ad7bcad91bbe01da902d465009ce..a909f88b7665547ee15a324d313f78c125ac5bf4 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.cpp
+++ b/src/plugins/projectexplorer/allprojectsfilter.cpp
@@ -71,8 +71,5 @@ void AllProjectsFilter::updateFiles()
 void AllProjectsFilter::refresh(QFutureInterface<void> &future)
 {
     Q_UNUSED(future);
-    // invokeAsyncronouslyOnGuiThread
-    connect(this, SIGNAL(invokeRefresh()), this, SLOT(markFilesAsOutOfDate()));
-    emit invokeRefresh();
-    disconnect(this, SIGNAL(invokeRefresh()), this, SLOT(markFilesAsOutOfDate()));
+    QMetaObject::invokeMethod(this, "markFilesAsOutOfDate", Qt::BlockingQueuedConnection);
 }
diff --git a/src/plugins/projectexplorer/allprojectsfilter.h b/src/plugins/projectexplorer/allprojectsfilter.h
index f0cf3afea05d7ee0e6a76ec5862b4ffdec0540ff..b45280b20c7bb83328622ce9fd9e29936c8eb0ed 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.h
+++ b/src/plugins/projectexplorer/allprojectsfilter.h
@@ -58,8 +58,6 @@ protected:
 
 private slots:
     void markFilesAsOutOfDate();
-signals:
-    void invokeRefresh();
 private:
     ProjectExplorerPlugin *m_projectExplorer;
     bool m_filesUpToDate;
diff --git a/src/plugins/projectexplorer/currentprojectfilter.cpp b/src/plugins/projectexplorer/currentprojectfilter.cpp
index 5910b2a58cb54dac6f2561188e011ba9e73d6735..01d98d45b666afc5579442d04b4555eb59478d13 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.cpp
+++ b/src/plugins/projectexplorer/currentprojectfilter.cpp
@@ -88,8 +88,5 @@ void CurrentProjectFilter::currentProjectChanged(ProjectExplorer::Project *proje
 void CurrentProjectFilter::refresh(QFutureInterface<void> &future)
 {
     Q_UNUSED(future);
-    // invokeAsyncronouslyOnGuiThread
-    connect(this, SIGNAL(invokeRefresh()), this, SLOT(markFilesAsOutOfDate()));
-    emit invokeRefresh();
-    disconnect(this, SIGNAL(invokeRefresh()), this, SLOT(markFilesAsOutOfDate()));
+    QMetaObject::invokeMethod(this, "markFilesAsOutOfDate", Qt::BlockingQueuedConnection);
 }
diff --git a/src/plugins/projectexplorer/currentprojectfilter.h b/src/plugins/projectexplorer/currentprojectfilter.h
index 1f092451fd74d72e7d8466c6076eb5cc65978211..2cbf5e5d633abc46d4639178d9a9536c92dfadaa 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.h
+++ b/src/plugins/projectexplorer/currentprojectfilter.h
@@ -63,9 +63,6 @@ private slots:
     void currentProjectChanged(ProjectExplorer::Project *project);
     void markFilesAsOutOfDate();
 
-signals:
-    void invokeRefresh();
-
 private:
 
     ProjectExplorerPlugin *m_projectExplorer;
diff --git a/src/plugins/quickopen/opendocumentsfilter.cpp b/src/plugins/quickopen/opendocumentsfilter.cpp
index de2bce334bb0531638fb143595cabdb13d5fabf1..179647cad322c35112f8472af2296d10ce7f5df3 100644
--- a/src/plugins/quickopen/opendocumentsfilter.cpp
+++ b/src/plugins/quickopen/opendocumentsfilter.cpp
@@ -83,10 +83,7 @@ void OpenDocumentsFilter::refreshInternally()
 void OpenDocumentsFilter::refresh(QFutureInterface<void> &future)
 {
     Q_UNUSED(future);
-    // invokeAsyncronouslyOnGuiThread
-    connect(this, SIGNAL(invokeRefresh()), this, SLOT(refreshInternally()));
-    emit invokeRefresh();
-    disconnect(this, SIGNAL(invokeRefresh()), this, SLOT(refreshInternally()));
+    QMetaObject::invokeMethod(this, "refreshInternally", Qt::BlockingQueuedConnection);
 }
 
 void OpenDocumentsFilter::accept(FilterEntry selection) const
diff --git a/src/plugins/quickopen/opendocumentsfilter.h b/src/plugins/quickopen/opendocumentsfilter.h
index f5bfe0cbaa3b8e8f307560582ea563c7170498de..aafed3cfc5d8cbbc43737ac811048f7804e62b3e 100644
--- a/src/plugins/quickopen/opendocumentsfilter.h
+++ b/src/plugins/quickopen/opendocumentsfilter.h
@@ -59,8 +59,7 @@ public:
 
 public slots:
     void refreshInternally();
-signals:
-    void invokeRefresh();
+
 private:
     Core::EditorManager *m_editorManager;