What you could try is this:

- have a property for "old content height"
- when content height grows, check if the old value is less than the visible height and the new value is greater than or equal, then you have filled the view.

Alternatively you could connect to the model's signals that indicate beginning of row changes (QAbstractItemModel::rowsAboutToBeInserted(), QAbstractItemModel::rowsAboutToBeRemoved()) and evaluate the situation for bScrolled there:
if content height is less than or equal the visible height or yAtEnd then scrolled is false

Cheers,
_