Hi. I would like to submit a patch. Since it is probably going to break binary compatibility and is mostly about coding conventions, I would like to have some feedback before investing time.
The general idea is to create a playground project for automatic (de)serialization for Qt (not manual, i.e. overriding operators). The only stopper is container deserialization. To operate containers without staticaly knowing their types, one should be able to make conversions from QVariant containing a container to container of QVariants and vice versa. Seriazation is quite straightforward via QSequentialIterable and QAssociativeIterable. But deserialization is currently possible only by QMetaType::registerConverter. I think, that this is would be so nice to have an ability to create a container via QVariant from collection of QVariant instances without a need for custom converters. ~ QList<QVariant> variantContainer; variantContainer.append(QVariant(123)); variantContainer.append(QVariant(321)); QVariant variant(QVariant::fromValue(variantContainer)); QVariant containerVariant(variant.convert(qMetaTypeId<QList<int> >())); ~ And so I have stumbled into a problem. QSequentialIterable and QAssociativeIterable related code is scattered across <qvariant.h> and <qmetatype.h>. All related conversions are conveyed in templates, instead of https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/kernel/qvariant.cpp#n387 . I just don't feel, that further https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/kernel/qvariant.h#n782 and https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/kernel/qmetatype.h#n1121 development is the way to go. And so the question is: should I try to refactor sequential and associative iterators, so templates are used only to staticaly gather information about containers and conversions are made in qvariant.cpp, where they belong? It also would be nice to hear, if someone acknowledges this conversion feature to be of use. Thanks for reading this far.
_______________________________________________ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development