diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-09 14:16:12 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-09 14:16:12 +0100 |
commit | 03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (patch) | |
tree | 52599cd0ab782b1768e23ad176f7618f98333cb6 /Source/WebCore/html/HTMLTablePartElement.cpp | |
parent | cd44dc59cdfc39534aef4d417e9f3c412e3be139 (diff) | |
download | qtwebkit-03e12282df9aa1e1fb05a8b90f1cfc2e08764cec.tar.gz |
Imported WebKit commit e09a82039aa4273ab318b71122e92d8e5f233525 (http://svn.webkit.org/repository/webkit/trunk@107223)
Diffstat (limited to 'Source/WebCore/html/HTMLTablePartElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLTablePartElement.cpp | 71 |
1 files changed, 30 insertions, 41 deletions
diff --git a/Source/WebCore/html/HTMLTablePartElement.cpp b/Source/WebCore/html/HTMLTablePartElement.cpp index dfaecca9a..8fd747bd8 100644 --- a/Source/WebCore/html/HTMLTablePartElement.cpp +++ b/Source/WebCore/html/HTMLTablePartElement.cpp @@ -36,65 +36,54 @@ namespace WebCore { using namespace HTMLNames; -bool HTMLTablePartElement::mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const -{ - if (attrName == backgroundAttr) { - result = (MappedAttributeEntry)(eLastEntry + document()->docID()); - return false; - } - - if (attrName == bgcolorAttr || - attrName == bordercolorAttr || - attrName == valignAttr || - attrName == heightAttr) { - result = eUniversal; - return false; - } - - if (attrName == alignAttr) { - result = eCell; // All table parts will just share in the TD space. - return false; - } - - return HTMLElement::mapToEntry(attrName, result); -} - -void HTMLTablePartElement::parseMappedAttribute(Attribute* attr) +void HTMLTablePartElement::parseAttribute(Attribute* attr) { if (attr->name() == bgcolorAttr) - addCSSColor(attr, CSSPropertyBackgroundColor, attr->value()); + if (attr->value().isNull()) + removeCSSProperty(CSSPropertyBackgroundColor); + else + addCSSColor(CSSPropertyBackgroundColor, attr->value()); else if (attr->name() == backgroundAttr) { String url = stripLeadingAndTrailingHTMLSpaces(attr->value()); if (!url.isEmpty()) - addCSSImageProperty(attr, CSSPropertyBackgroundImage, document()->completeURL(url).string()); + addCSSImageProperty(CSSPropertyBackgroundImage, document()->completeURL(url).string()); + else + removeCSSProperty(CSSPropertyBackgroundImage); } else if (attr->name() == bordercolorAttr) { if (!attr->value().isEmpty()) { - addCSSColor(attr, CSSPropertyBorderColor, attr->value()); - addCSSProperty(attr, CSSPropertyBorderTopStyle, CSSValueSolid); - addCSSProperty(attr, CSSPropertyBorderBottomStyle, CSSValueSolid); - addCSSProperty(attr, CSSPropertyBorderLeftStyle, CSSValueSolid); - addCSSProperty(attr, CSSPropertyBorderRightStyle, CSSValueSolid); - } + addCSSColor(CSSPropertyBorderColor, attr->value()); + addCSSProperty(CSSPropertyBorderTopStyle, CSSValueSolid); + addCSSProperty(CSSPropertyBorderBottomStyle, CSSValueSolid); + addCSSProperty(CSSPropertyBorderLeftStyle, CSSValueSolid); + addCSSProperty(CSSPropertyBorderRightStyle, CSSValueSolid); + } else + removeCSSProperties(CSSPropertyBorderColor, CSSPropertyBorderTopStyle, CSSPropertyBorderBottomStyle, CSSPropertyBorderLeftStyle, CSSPropertyBorderRightStyle); } else if (attr->name() == valignAttr) { if (!attr->value().isEmpty()) - addCSSProperty(attr, CSSPropertyVerticalAlign, attr->value()); + addCSSProperty(CSSPropertyVerticalAlign, attr->value()); + else + removeCSSProperty(CSSPropertyVerticalAlign); } else if (attr->name() == alignAttr) { const AtomicString& v = attr->value(); - if (equalIgnoringCase(v, "middle") || equalIgnoringCase(v, "center")) - addCSSProperty(attr, CSSPropertyTextAlign, CSSValueWebkitCenter); + if (v.isNull()) + removeCSSProperty(CSSPropertyTextAlign); + else if (equalIgnoringCase(v, "middle") || equalIgnoringCase(v, "center")) + addCSSProperty(CSSPropertyTextAlign, CSSValueWebkitCenter); else if (equalIgnoringCase(v, "absmiddle")) - addCSSProperty(attr, CSSPropertyTextAlign, CSSValueCenter); + addCSSProperty(CSSPropertyTextAlign, CSSValueCenter); else if (equalIgnoringCase(v, "left")) - addCSSProperty(attr, CSSPropertyTextAlign, CSSValueWebkitLeft); + addCSSProperty(CSSPropertyTextAlign, CSSValueWebkitLeft); else if (equalIgnoringCase(v, "right")) - addCSSProperty(attr, CSSPropertyTextAlign, CSSValueWebkitRight); + addCSSProperty(CSSPropertyTextAlign, CSSValueWebkitRight); else - addCSSProperty(attr, CSSPropertyTextAlign, v); + addCSSProperty(CSSPropertyTextAlign, v); } else if (attr->name() == heightAttr) { if (!attr->value().isEmpty()) - addCSSLength(attr, CSSPropertyHeight, attr->value()); + addCSSLength(CSSPropertyHeight, attr->value()); + else + removeCSSProperty(CSSPropertyHeight); } else - HTMLElement::parseMappedAttribute(attr); + HTMLElement::parseAttribute(attr); } } |