Pierre, Thanks for the tip. It worked. I got that from an example online, but not from official documentation.
IPatch extends QObject so it is basically a QObject. I have changed the cast to QObject and it is working now! Thanks! Best regards, Nuno > On 16 Oct 2017, at 22:16, Pierre-Yves Siret <py.si...@gmail.com> wrote: > > > 2017-10-16 20:11 GMT+02:00 Nuno Santos <nunosan...@imaginando.pt > <mailto:nunosan...@imaginando.pt>>: > Hi, > > I have for the first time defined a QAbstractItemModel to use on Qml because > I needed to have a filtered version of this model using QSortFilterProxyModel. > > I have the documentation here -> > http://doc.qt.io/archives/qt-5.5/qtquick-modelviewsdata-cppmodels.html > <http://doc.qt.io/archives/qt-5.5/qtquick-modelviewsdata-cppmodels.html> and > followed the example given. I have defined the following roles: > > enum PatchRoles { > IdRole = Qt::UserRole + 1, > NameRole, > ModifiedRole, > TagsRole, > ModelDataRole > }; > > And then under data retrieval method: > > QVariant IPatchManagerModel::data(const QModelIndex & index, int role) const > { > if (index.row() < 0 || index.row() >= _patches.count()) > return QVariant(); > > IPatch* patch = _patches.at <http://patches.at/>(index.row()); > > if (role == IdRole) > return patch->id(); > else if (role == NameRole) > return patch->nameLabel(); > else if (role == ModifiedRole) > return patch->modified(); > else if (role == TagsRole) > return patch->tags(); > else if (role == ModelDataRole) > return qVariantFromValue((void *) patch); > > return QVariant(); > } > > Every role works except modelData, whenever I try to access it it gives me > null on the Qml side. > > Does anyone knows what am I doing wrong? > > Thanks, > > Regards, > > Nuno > > _______________________________________________ > Interest mailing list > Interest@qt-project.org <mailto:Interest@qt-project.org> > http://lists.qt-project.org/mailman/listinfo/interest > <http://lists.qt-project.org/mailman/listinfo/interest> > > > I'm gonna go out on a limb and say that the QML engine can't deal with void* > type. > What type is patch? Put it in the variant as a QObject* instead if you can. > > Regards > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest