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(); }
void SVGSMILElement::removedFrom(ContainerNode* rootParent) { if (rootParent->isConnected()) { clearResourceAndEventBaseReferences(); clearConditions(); setTargetElement(nullptr); setAttributeName(anyQName()); animationAttributeChanged(); m_timeContainer = nullptr; } SVGElement::removedFrom(rootParent); }
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); }