void ModelRewriter::setAnchorMargin(const InternalNodeState::Pointer &state, const QString &propertyName, const QVariant &value) { if (state.isNull() || !state->isValid()) throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); if (state->propertyLocation(propertyName).isValid()) { if (value.toDouble() == 0.0 && state->isBaseState()) m_modelToTextMerger.removeProperty(state, propertyName); else m_modelToTextMerger.changePropertyValue(state, propertyName, value); } else { if (value.toDouble() == 0.0 && state->isBaseState()) { // do nothing } else { m_modelToTextMerger.addProperty(state, propertyName, value); } } if (!modificationGroupActive()) m_modelToTextMerger.applyChanges(*m_textModifier); }