You can of course emit your own signals when you insert or remove items in your model.
But I'm not really sure I understand your problem. If you do not have any childitems for a particular parent item, then hasChildren() will always return false. Do you want to have it return true if there are no children?
Bookmarks