On Thu, Nov 8, 2012 at 6:43 PM, Nicolás Ulrich <nikola...@gmail.com> wrote: > 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
Yes. But even if i change it to your suggestion it doesn't work. It's all in the private copy ctor... _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest