syncRoleNames is fast (and faster now that we check that the role names actually changed)
but it may be nicer to find a more efficient way in future than checking the role names
on all / any data changes. in fact, the documentation for QAbstractItemModel::setRoleNames says:
"This function must be called before the model is used.
Modifying the role names after the model has been set may result in undefined behaviour."
BUG:308101