void QmlAnchorBindingProxy::setTopAnchor(bool anchor) { if (!m_qmlItemNode.hasNodeParent()) return ; if (topAnchored() == anchor) return; RewriterTransaction transaction = beginRewriterTransaction( QByteArrayLiteral("QmlAnchorBindingProxy::setTopAnchor")); if (!anchor) { removeTopAnchor(); } else { setDefaultRelativeTopTarget(); anchorTop(); backupPropertyAndRemove(modelNode(), "y"); if (bottomAnchored()) backupPropertyAndRemove(modelNode(), "height"); } emit relativeAnchorTargetTopChanged(); emit topAnchorChanged(); if (hasAnchors() != anchor) emit anchorsChanged(); }
bool QmlAnchorBindingProxy::isFilled() { return m_fxItemNode.isValid() && hasAnchors() && topAnchored() && bottomAnchored() && leftAnchored() && rightAnchored() && (m_fxItemNode.instanceValue("anchors.topMargin").toInt() == 0) && (m_fxItemNode.instanceValue("anchors.bottomMargin").toInt() == 0) && (m_fxItemNode.instanceValue("anchors.leftMargin").toInt() == 0) && (m_fxItemNode.instanceValue("anchors.rightMargin").toInt() == 0); }
void QmlAnchorBindingProxy::setTopAnchor(bool anchor) { if (!m_qmlItemNode.hasNodeParent()) return ; if (topAnchored() == anchor) return; RewriterTransaction transaction = m_qmlItemNode.modelNode().view()->beginRewriterTransaction(QByteArrayLiteral("QmlAnchorBindingProxy::setTopAnchor")); if (!anchor) { removeTopAnchor(); } else { calcTopMargin(); backupPropertyAndRemove(modelNode(), "y"); if (bottomAnchored()) backupPropertyAndRemove(modelNode(), "height"); } emit topAnchorChanged(); if (hasAnchors() != anchor) emit anchorsChanged(); }
void QmlAnchorBindingProxy::setBottomAnchor(bool anchor) { if (!m_fxItemNode.hasNodeParent()) return; if (bottomAnchored() == anchor) return; RewriterTransaction transaction = m_fxItemNode.modelNode().view()->beginRewriterTransaction(); if (!anchor) { removeBottomAnchor(); } else { calcBottomMargin(); if (topAnchored()) { backupPropertyAndRemove(modelNode(), "height"); } } emit bottomAnchorChanged(); if (hasAnchors() != anchor) emit anchorsChanged(); }
void QmlAnchorBindingProxy::setup(const QmlItemNode &fxItemNode) { m_fxItemNode = fxItemNode; m_verticalTarget = m_horizontalTarget = m_topTarget = m_bottomTarget = m_leftTarget = m_rightTarget = m_fxItemNode.modelNode().parentProperty().parentModelNode(); if (topAnchored()) { ModelNode targetNode = m_fxItemNode.anchors().instanceAnchor(AnchorLine::Top).qmlItemNode(); if (targetNode.isValid()) m_topTarget = targetNode; } if (bottomAnchored()) { ModelNode targetNode = m_fxItemNode.anchors().instanceAnchor(AnchorLine::Bottom).qmlItemNode(); if (targetNode.isValid()) m_bottomTarget = targetNode; } if (leftAnchored()) { ModelNode targetNode = m_fxItemNode.anchors().instanceAnchor(AnchorLine::Left).qmlItemNode(); if (targetNode.isValid()) m_leftTarget = targetNode; } if (rightAnchored()) { ModelNode targetNode = m_fxItemNode.anchors().instanceAnchor(AnchorLine::Right).qmlItemNode(); if (targetNode.isValid()) m_rightTarget = targetNode; } if (verticalCentered()) { ModelNode targetNode = m_fxItemNode.anchors().instanceAnchor(AnchorLine::VerticalCenter).qmlItemNode(); if (targetNode.isValid()) m_verticalTarget = targetNode; } if (horizontalCentered()) { ModelNode targetNode = m_fxItemNode.anchors().instanceAnchor(AnchorLine::HorizontalCenter).qmlItemNode(); if (targetNode.isValid()) m_horizontalTarget = targetNode; } emit itemNodeChanged(); emit parentChanged(); emit topAnchorChanged(); emit bottomAnchorChanged(); emit leftAnchorChanged(); emit rightAnchorChanged(); emit centeredHChanged(); emit centeredVChanged(); emit anchorsChanged(); if (m_fxItemNode.hasNodeParent()) { emit itemNodeChanged(); emit topTargetChanged(); emit bottomTargetChanged(); emit leftTargetChanged(); emit rightTargetChanged(); emit verticalTargetChanged(); emit horizontalTargetChanged(); } }