By connecting to the queryFinished signal, we know when all other runners are done with matching. After that we can check if there are any matches and if not add a match for the default provider.
This way we have the advantage of only showing a result when it is relevant. For example, when we search for apps and get results, the default search engine result would not be needed.