Пример #1
0
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);
}