26 #include <QtCore/QMetaObject>
27 #include <QtCore/QMetaProperty>
29 using namespace QJson;
37 const QStringList& ignoredProperties)
40 const QMetaObject *metaobject =
object->metaObject();
41 int count = metaobject->propertyCount();
42 for (
int i=0; i<count; ++i) {
43 QMetaProperty metaproperty = metaobject->property(i);
44 const char *
name = metaproperty.name();
46 if (!metaproperty.isReadable() || ignoredProperties.contains(QLatin1String(name)))
49 QVariant value =
object->property(name);
50 result[QLatin1String(name)] = value;
57 const QMetaObject *metaobject =
object->metaObject();
59 for (QVariantMap::const_iterator iter = variant.constBegin(),
60 end = variant.constEnd(); iter != end; ++iter) {
61 int pIdx = metaobject->indexOfProperty( iter.key().toLatin1() );
67 QMetaProperty metaproperty = metaobject->property( pIdx );
68 #if TTK_QT_VERSION_CHECK(6,0,0)
69 const QMetaType type = metaproperty.metaType();
71 const QVariant::Type type = metaproperty.type();
73 QVariant v( iter.value() );
74 if ( v.canConvert( type ) ) {
76 metaproperty.write(
object, v );
77 }
else if (QLatin1String(
"QVariant") == QLatin1String(metaproperty.typeName())) {
78 metaproperty.write(
object, v );
TTKVariant< Types...> variant
static void qvariant2qobject(const QVariantMap &variant, QObject *object)
This method converts a QVariantMap instance into a QObject.
static QVariantMap qobject2qvariant(const QObject *object, const QStringList &ignoredProperties=QStringList(QString(QLatin1String("objectName"))))
This method converts a QObject instance into a QVariantMap.