Work/fix crash
Fix filter invalidation
When we have matched columns we change what filterAcceptsRow passes. This means we need to recheck row validaty not a layout change. A layout change implies movement, but not a change in which rows exist.
Without this KDescendantsProxyModel gets out of sync as it correctly doesn't refresh indexes on a layout change.
Avoid manually recreating recursive filtering
This is done automatically for us by setRecursiveFilteringEnabled. That also handles updates.
Tested by opening the tree view and filtering for a name exclusively in the leaf.
Find UID column on first load
As potentially it could be set already. It hasn't caused any issues, but it looks like a valid hypothetical case
Optimise the case before the model is loaded
If we haven't found the m_uidColumn the rows will be useless. It's faster to not accept then accept later, than to accept then remove.