For now this has been tested on OS X 10.9 with Qt 5.7.1, KF5 5.29.0 and clang 3.9.0 . Initial testing suggests that the approach works as expected in preventing GUI freezes, but the event filter isn't used at all. As a result, solution popups still open (long) after the cursor has been moved elsewhere, potentially even replacing other popups.
It may be possible to replace the separate UDPScanEventLoop instance with QThread's event loop but I don't know if there is a real advantage to that.
It would probably also be useful if the ClangFixitAssistant class had a means to indicate that it does not have valid results, but maybe the `solutionAssistant()` method can return NULL or `ClangFixitAssistant()` when a scan was interrupted?