mwolff requested changes to this revision. mwolff added a comment. This revision now requires changes to proceed.
it would probably be a good idea to rewrite `KConfigGroupPrivate::serializeList` to not take a `QVariantList`, but rather to use a streaming API. I.e. instead of: void foo(myList) { varList = convertList(myList); write(KConfigGroupPrivate::serializeList(list)); } Do something like: void foo(myList) { var value = KConfigGroupPrivate::serializeList(mylist) write(value); } where `serializeList` is a template that does $magic internally to convert a list of values to a serializeable format (i.e. iterate over values, then stream them into QDataStream/QTextStream, wrap in QVariant only when needed). Note that you can then use `initializer_list` for the "static" lists like for `QPoint` et al. INLINE COMMENTS > kconfiggroup.cpp:185 > > static QList<int> asIntList(const QByteArray &string) > { can you make this (and the `QList<qreal>` below) a `QVector` instead? Would save 50% of memory on 64bit machines > kconfiggroup.cpp:187 > { > + const auto &splitString = string.split(','); > + use `splitRef` instead, also below REPOSITORY R237 KConfig REVISION DETAIL https://phabricator.kde.org/D7879 To: broulik, kde-frameworks-devel, dfaure, davidedmundson, mwolff Cc: mwolff, #frameworks