void SVGSMILElement::svgAttributeChanged(const QualifiedName& attrName)
{
    if (attrName == SVGNames::durAttr) {
        m_cachedDur = invalidCachedTime;
    } else if (attrName == SVGNames::repeatDurAttr) {
        m_cachedRepeatDur = invalidCachedTime;
    } else if (attrName == SVGNames::repeatCountAttr) {
        m_cachedRepeatCount = invalidCachedTime;
    } else if (attrName == SVGNames::minAttr) {
        m_cachedMin = invalidCachedTime;
    } else if (attrName == SVGNames::maxAttr) {
        m_cachedMax = invalidCachedTime;
    } else if (attrName == SVGNames::attributeNameAttr) {
        setAttributeName(constructQualifiedName(this, fastGetAttribute(SVGNames::attributeNameAttr)));
    } else if (attrName.matches(SVGNames::hrefAttr) || attrName.matches(XLinkNames::hrefAttr)) {
        // TODO(fs): Could be smarter here when 'href' is specified and 'xlink:href' is changed.
        SVGElement::InvalidationGuard invalidationGuard(this);
        buildPendingResource();
        if (m_targetElement)
            clearAnimatedType();
    } else if (attrName == SVGNames::beginAttr || attrName == SVGNames::endAttr) {
        if (inDocument()) {
            connectEventBaseConditions();
            if (attrName == SVGNames::beginAttr)
                beginListChanged(elapsed());
            else if (attrName == SVGNames::endAttr)
                endListChanged(elapsed());
        }
    } else {
        SVGElement::svgAttributeChanged(attrName);
        return;
    }

    animationAttributeChanged();
}
void SVGAnimationElement::svgAttributeChanged(const QualifiedName& attrName)
{
    if (!isSupportedAttribute(attrName)) {
        SVGSMILElement::svgAttributeChanged(attrName);
        return;
    }

    animationAttributeChanged();
}
Exemplo n.º 3
0
void SVGSMILElement::removedFrom(ContainerNode* rootParent) {
  if (rootParent->isConnected()) {
    clearResourceAndEventBaseReferences();
    clearConditions();
    setTargetElement(nullptr);
    setAttributeName(anyQName());
    animationAttributeChanged();
    m_timeContainer = nullptr;
  }

  SVGElement::removedFrom(rootParent);
}
Exemplo n.º 4
0
void SVGSMILElement::removedFrom(ContainerNode& rootParent)
{
    if (rootParent.inDocument()) {
        clearResourceReferences();
        disconnectConditions();
        setTargetElement(0);
        setAttributeName(anyQName());
        animationAttributeChanged();
        m_timeContainer = 0;
    }

    SVGElement::removedFrom(rootParent);
}
void SVGAnimationElement::svgAttributeChanged(const QualifiedName& attrName)
{
    if (attrName == SVGNames::valuesAttr
        || attrName == SVGNames::byAttr
        || attrName == SVGNames::fromAttr
        || attrName == SVGNames::toAttr
        || attrName == SVGNames::calcModeAttr
        || attrName == SVGNames::attributeTypeAttr
        || attrName == SVGNames::keySplinesAttr
        || attrName == SVGNames::keyPointsAttr
        || attrName == SVGNames::keyTimesAttr) {
        animationAttributeChanged();
        return;
    }

    SVGSMILElement::svgAttributeChanged(attrName);
}