I didn't like it when I wrote it, the more I see it the more I hate it.
Hiding it for good and making the recursion using a proper private
method.
Will also be necessary because of upcoming include changes which mean
that QModelIndex() won't be seen from the header anymore.