Op 10-1-2013 17:46, Alberto Mardegan schreef: > Hi all! > I'd like to make C++ models more usable from QML; in the net there > are several blog posts illustrating how to achieve that, but IMHO it > would be better if at least some of these handy features were in > QAbstractListModel itself: > > - "count" property > - "get(index)" invocable method, returning a QVariantMap mapping all the > roles to their data for the specified index > > Also, though not very often requested, we could add: > - "remove(index)" which just calls QAbstractItemModel::removeRow() > - "QList<QVariant> items(const QString &role)", which returns the data > for the role "role" for all items. > > The implementation for the above is fairly trivial, so I wonder if > there's some other reasons why it hasn't been done or if it's just that > no one did and a patch is welcome.
I am not fan of this change. I think the API of QAIM is already very complex. Adding more methods that basically only sort-of mirror existing methods but for a more confined use-cases only makes that situation worse. For instance, you now get a count() method that claims that it returns the number of items in the model. What does that mean in the context of a tree model? It makes QAIM even harder to understand for people trying to get into writing models for Qt's item views. If you really need a these methods exported to QML, I'd like to see that done in a way that does not further complicate the C++ API. Perhaps an alternative approach would be to create a proxy model for exporting to QML. It could include all the methods you need, but it would not complicate QAIM itself. It seems to me that all the methods you need can be implemented in terms of the already existing functionality in QAIM, so it would work on all of them. Instead of exposing the C++ QAIM directly, you could create an instance of the proxy on it and expose that proxy model to QML instead, providing all the QML specific methods you need without complicating the base QAIM. It would IMHO be even better to get access to the QML model API from C++, making it possible to build 'native' QML models directly in C++. Eventually, that will probably happen, but I guess more water will need to flow through <insert your local major river> before that can be done. André _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development