+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.toLatin1());
+
+ if (propertyIndex == -1 || !meta->property(propertyIndex).isWritable())
+ setInitValue(propName, iterator.value());
+ else
+ setProperty(propName.toLatin1(), iterator.value());
+ // qDebug() << "<<< SYNC:" << name << iterator.value();
+ ++iterator;
+ }