After exposing the QSortFilterProxyModel class to QML I was able to define custom filters based on each items name and “star” while also sorting based on multiple criteria. While this solution worked well it broke data change animations because QSortFilterProxyModel does not emit the correct beginmoverows() signal. This is something I don’t have a solution for yet.
I am continually impressed how much Qt has expanded their product. You can now build for embedded devices, Android, iOS, and all major desktop platforms. However, the trade off for a standardized toolkit is inflexibility. Developing a plugin or adapter to the outside world, which could be calling a Java API on Android or calling Qt’s C++ APIs from QML, is likely if you are building a moderately complex application.