I evaluated different methods to deliver arrays of objects from integration to the remote. The QAbstractListModel is the best, in most cases in the UI ListViews are used to display the arrays of objects. I also tried QQmlListProperty, but it is more complicated and requires arrays of QObjects derived items which have a big overhead, I have learned.
What I did not like in my current ROON integration was the handling with QVariantMaps (using member names) and I found a good alternative. I can not get used to the fact that you realize at runtime that you have mistyped a name. For flat objects (maybe also for nested) objects QObject* is a good alternative. QML deals perfect witch such objects.
In the media browser I need access to a list item as normal object .
Q_INVOKABLE QObject* getItem (int index);
Some magic (Qt Engine) frees the allocated objects. QObject* is a QModelItem derived from ModelItem. I pushed the change to my roon integration. If you need similar functionality take a look to latest integration.roon. I also removed all ROON specific things from the BrowseModel. Such things are candidates for a integration libary I think.
I will change the weather stuff also to QAbstractListModel please wait with merging.
And I will implement purging old log files in the Logger.