No, it's not strangeAnyway, everytime you use indexes with the source model, you have to map them to the source model space using mapToSource(). And everytime where you get an index from the source model, you should map it to the proxy model space using mapFromSource.
As for multple occurences of data() calls -- don't worry about it, it's perfectly normal. The view is asking the model for things like a tooltip for the item under the pointer. If you extend your cout to also show the roles in question, you'll see that for yourself.
Bookmarks