- if(propertyIndex == -1 || !meta->property(propertyIndex).isWritable())
- setInitValue(propName, iterator.value());
- else
- setProperty(propName.toAscii(), iterator.value());
- // qDebug() << "<<< SYNC:" << name << iterator.value();
- iterator++;
- }
+void SyncableObject::fromVariantMap(const QVariantMap &properties)
+{
+ const QMetaObject *meta = metaObject();
+
+ QVariantMap::const_iterator iterator = properties.constBegin();
+ QString propName;
+ while (iterator != properties.constEnd()) {
+ propName = iterator.key();
+ if (propName == "objectName") {
+ iterator++;
+ continue;
+ }
+
+ int propertyIndex = meta->indexOfProperty(propName.toAscii());
+
+ if (propertyIndex == -1 || !meta->property(propertyIndex).isWritable())
+ setInitValue(propName, iterator.value());
+ else
+ setProperty(propName.toAscii(), iterator.value());
+ // qDebug() << "<<< SYNC:" << name << iterator.value();
+ iterator++;
+ }