markg added a comment.
This basically is the equivalent of the C++ range iterator (https://github.com/ryanhaining/cppitertools#range, but more libraries have a "range" iterator like that). In all the documentation blocks you miss the argument and return value documentation. I'm curious though, in which situation did you need a model like this? A situation i can think of is where you would always want to show x number of items (say for instance a top 10 downloads) and just leve the entries blank (but have the index numbers) if there isn't enough to fill the top 10. INLINE COMMENTS > knumbermodel.cpp:24 > +#include <QLocale> > +#include <QDebug> > + QDebug is unused. > knumbermodel.cpp:34 > + qreal step = 1.0; > + QLocale::NumberOptions formattingOptions = > QLocale::DefaultNumberOptions; > +}; Drop one space.. > knumbermodel.cpp:114 > +{ > + return d->min + d->step * index.row(); > +} This is only guaranteed to be a valid index if the callers call it with a valid index. Better be safe then sorry and check for isValid(). > knumbermodel.cpp:121 > + } > + return std::max(0.0, std::floor((d->max - d->min) / d->step)) + 1; > +} Won't this give compile warnings? It's double and int foo mixed. Also, the +1 should probably be "+ d->step" > knumbermodel.cpp:140-143 > + QHash<int, QByteArray> roleNames; > + roleNames[Display] = QByteArrayLiteral("display"); > + roleNames[Value] = QByteArrayLiteral("value"); > + return roleNames; This can be compile-time generated. REPOSITORY R275 KItemModels REVISION DETAIL https://phabricator.kde.org/D13358 To: davidedmundson Cc: markg, kde-frameworks-devel, michaelh, ngraham, bruns