bool REntity::setProperty(RPropertyTypeId propertyTypeId, const QVariant& value, RTransaction* transaction) { bool ret = RObject::setProperty(propertyTypeId, value, transaction); if (propertyTypeId == PropertyBlock) { ret = ret || RObject::setMember(getData().blockId, value.toInt(), true); } else if (propertyTypeId == PropertyLayer) { if (value.type() == QVariant::Int || value.type() == QVariant::LongLong) { ret = ret || RObject::setMember(getData().layerId, value.toInt(), true); } else if (value.type() == QVariant::String) { RDocument* document = getData().getDocument(); if (document != NULL) { ret = ret || RObject::setMember(getData().layerId, document->getLayerId(value.toString()), true); } } } else if (propertyTypeId == PropertyLinetype) { if (value.type() == QVariant::Int || value.type() == QVariant::LongLong) { ret = ret || RObject::setMember(getData().linetypeId, value.toInt(), true); } else { RDocument* document = getData().getDocument(); if (document != NULL) { RLinetypePattern t = value.value<RLinetypePattern> (); int id = document->getLinetypeId(t.getName()); ret = ret || RObject::setMember(getData().linetypeId, id, true); } } } else if (propertyTypeId == PropertyLinetypeScale) { ret = ret || RObject::setMember(getData().linetypeScale, value.toDouble(), true); } else if (propertyTypeId == PropertyLineweight) { if (value.type()==QVariant::Int || value.type()==QVariant::Double) { ret = ret || RObject::setMember((int&)getData().lineweight, value.value<int>(), true); } else { ret = ret || RObject::setMember((int&)getData().lineweight, (int)value.value<RLineweight::Lineweight>(), true); } } else if (propertyTypeId == PropertyColor) { ret = ret || RObject::setMember(getData().color, value, true); } else if (propertyTypeId == PropertyDrawOrder) { ret = ret || RObject::setMember(getData().drawOrder, value, true); } return ret; }
void REntityData::setLinetypePattern(const RLinetypePattern& linetypePattern) { if (document!=NULL) { this->linetypeId = document->getLinetypeId(linetypePattern.getName()); } }
void RStorage::setCurrentLinetypePattern(const RLinetypePattern& p) { setCurrentLinetype(p.getName()); }