Are you really using this? qRegisterMetaType<PathModel*>("PathModel*"); (with the * in the string)
I guess it should be qRegisterMetaType<PathModel*>("PathModel"); On Thu, Nov 8, 2012 at 10:36 AM, Mark <mark...@gmail.com> wrote: > On Thu, Nov 8, 2012 at 10:34 AM, Bo Thorsen <b...@fioniasoftware.dk> wrote: >> Den 08-11-2012 01:33, Mark skrev: >>> Hi, >>> >>> I have a models in C++ (a QStringList actually). In QML i'm displaying >>> it using a repeater. Now when i remove some items from the end of the >>> list (which happens quite a few times) then the entire list seems to >>> go through the QML repeater again. >>> >>> What i want to do is put a QStringList in a QML Repeater (works), but >>> when i remove items from the end i would like QML to be "smart" and >>> also remove the items from the end and leave those that haven't >>> changed. Thus not re-inserting all the items in the repeater when not >>> needed. >>> >>> Is there some option to get that? >> >> To do this you need a better model than a QStringList in Repeater. Take >> a look at QStringListModel instead. But if you just call setStringList() >> you won't see any improvement. You have to use insertRows and removeRows >> instead. >> >> Bo Thorsen. >> >> Come by my DevDays talk in Berlin - "Designing for testability". Learn how >> to build and run your unit tests with the Qt application. >> >> Fionia Software - Qt experts for hire. >> >> _______________________________________________ >> Interest mailing list >> Interest@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > Thanks a lot for that, that will probably work. > However, i'm hitting another issue when trying to make a custom > StringListModel (only due to setRoleNames...) This is how it looks: > > // pathmodel.h > #ifndef PATHMODEL_H > #define PATHMODEL_H > > #include <QStringListModel> > > class PathModel : public QStringListModel > { > public: > PathModel(); > }; > > Q_DECLARE_METATYPE(PathModel*) > > #endif // PATHMODEL_H > > > // pathmodel.cpp > #include "pathmodel.h" > > PathModel::PathModel() > { > QHash<int,QByteArray> roleNames; > roleNames.insert(Qt::DisplayRole, "modelData"); > setRoleNames(roleNames); > } > > Now if i want to register the new meta type using: > qRegisterMetaType<PathModel*>("PathModel*"); > > The app instantly crashes when i run it.. It must be something very > obvious that i'm missing, but i don't see it. > > Any idea what i'm doing wrong? > _______________________________________________ > 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