void DFlatAssignmentVisitor::visitDItem(const DItem *item) { visitDObject(item); auto target = dynamic_cast<DItem *>(m_target); QMT_CHECK(target); target->setVariety(target->variety()); target->setShapeEditable(target->isShapeEditable()); target->setShape(target->shape()); }
void MFlatAssignmentVisitor::visitMItem(const MItem *item) { visitMObject(item); auto targetItem = dynamic_cast<MItem *>(m_target); QMT_CHECK(targetItem); targetItem->setVarietyEditable(item->isVarietyEditable()); targetItem->setVariety(item->variety()); targetItem->setShapeEditable(item->isShapeEditable()); }
void DUpdateVisitor::visitMItem(const MItem *item) { auto ditem = dynamic_cast<DItem *>(m_target); QMT_CHECK(ditem); if (isUpdating(item->isShapeEditable() != ditem->isShapeEditable())) ditem->setShapeEditable(item->isShapeEditable()); if (isUpdating(item->variety() != ditem->variety())) ditem->setVariety(item->variety()); visitMObject(item); }