/** * \brief Update dispatcher function. * * \param u The Update to update this object with. */ void UpdatableSOAdapter::update(const Update& u) { switch (u.getType()) { case Update::eAdd: debug("Adding object " << u.getReference()); addObject(*u.getObject(), u.getInitiator()); break; case Update::eRemove: debug("Removing object " << u.getReference()); removeObject(u.getReference(), u.getInitiator()); break; case Update::eReplace: debug("Replacing object " << u.getReference()); replaceObject(*u.getObject(), u.getInitiator()); break; case Update::eModify: debug("Modifying object " << u.getReference()); modify(*u.getObject()); break; default: Error e; e << "Unknown update type " << u.getType() << " for update with target "; throw e; } }
void CutTool::splitLine(PathObject* object, std::size_t part_index, qreal begin, qreal end) const { if (!drag_forward) qSwap(begin, end); auto split_objects = object->asPath()->removeFromLine(part_index, begin, end); replaceObject(object, split_objects); }
void CutTool::splitLine(PathObject* object, const PathCoord& split_pos) const { auto split_objects = object->splitLineAt(split_pos); if (!split_objects.empty()) replaceObject(object, split_objects); }