@tmladek
You are comparing QVariants that contain QList<Cat>, so you need to provide registered comparison operator for QList<Cat> (or conversions might take place), which you don't do.
PS.
Also, this:
should be:
qRegisterMetaType<Cat>();as specifically mentioned in the documentation.