The QFuture is iterating over a bidirectional iterator, which I assume is the root of the problem. However, the docs say that QFutureWatcher::progressValue "returns a value between progressMinimum and progressMaximum". I am calling QtConcurrent::filtered like this: QtConcurrent::filtered(myMap.begin(), myMap.end(), filterFn).
Does anyone have any idea on what is going wrong?