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