diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
commit | dd91e772430dc294e3bf478c119ef8d43c0a3358 (patch) | |
tree | 6f33ce4d5872a5691e0291eb45bf6ab373a5f567 /Source/WebCore/editing/EditingStyle.cpp | |
parent | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (diff) | |
download | qtwebkit-dd91e772430dc294e3bf478c119ef8d43c0a3358.tar.gz |
Imported WebKit commit 3db4eb1820ac8fb03065d7ea73a4d9db1e8fea1a (http://svn.webkit.org/repository/webkit/trunk@110422)
This includes build fixes for the latest qtbase/qtdeclarative as well as the final QML2 API.
Diffstat (limited to 'Source/WebCore/editing/EditingStyle.cpp')
-rw-r--r-- | Source/WebCore/editing/EditingStyle.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/Source/WebCore/editing/EditingStyle.cpp b/Source/WebCore/editing/EditingStyle.cpp index 57291c1f5..3a360d8a9 100644 --- a/Source/WebCore/editing/EditingStyle.cpp +++ b/Source/WebCore/editing/EditingStyle.cpp @@ -44,6 +44,7 @@ #include "QualifiedName.h" #include "RenderStyle.h" #include "StylePropertySet.h" +#include "StyleRule.h" #include "StyledElement.h" #include "htmlediting.h" #include "visible_units.h" @@ -124,7 +125,7 @@ public: virtual ~HTMLElementEquivalent() { } virtual bool matches(const Element* element) const { return !m_tagName || element->hasTagName(*m_tagName); } virtual bool hasAttribute() const { return false; } - virtual bool propertyExistsInStyle(StylePropertySet* style) const { return style && style->getPropertyCSSValue(m_propertyID); } + virtual bool propertyExistsInStyle(const StylePropertySet* style) const { return style && style->getPropertyCSSValue(m_propertyID); } virtual bool valueIsPresentInStyle(Element*, StylePropertySet*) const; virtual void addToStyle(Element*, EditingStyle*) const; @@ -174,7 +175,7 @@ public: { return adoptPtr(new HTMLTextDecorationEquivalent(primitiveValue, tagName)); } - virtual bool propertyExistsInStyle(StylePropertySet*) const; + virtual bool propertyExistsInStyle(const StylePropertySet*) const; virtual bool valueIsPresentInStyle(Element*, StylePropertySet*) const; private: @@ -187,7 +188,7 @@ HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent(int primitiveValue, c { } -bool HTMLTextDecorationEquivalent::propertyExistsInStyle(StylePropertySet* style) const +bool HTMLTextDecorationEquivalent::propertyExistsInStyle(const StylePropertySet* style) const { return style->getPropertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect) || style->getPropertyCSSValue(CSSPropertyTextDecoration); } @@ -663,7 +664,7 @@ bool EditingStyle::conflictsWithInlineStyleOfElement(StyledElement* element, Edi ASSERT(element); ASSERT(!conflictingProperties || conflictingProperties->isEmpty()); - StylePropertySet* inlineStyle = element->inlineStyleDecl(); + const StylePropertySet* inlineStyle = element->inlineStyle(); if (!m_mutableStyle || !inlineStyle) return false; @@ -849,7 +850,7 @@ bool EditingStyle::elementIsStyledSpanOrHTMLEquivalent(const HTMLElement* elemen matchedAttributes++; if (element->hasAttribute(HTMLNames::styleAttr)) { - if (StylePropertySet* style = element->inlineStyleDecl()) { + if (const StylePropertySet* style = element->inlineStyle()) { unsigned propertyCount = style->propertyCount(); for (unsigned i = 0; i < propertyCount; ++i) { if (!isEditingProperty(style->propertyAt(i).id())) @@ -911,18 +912,18 @@ void EditingStyle::mergeTypingStyle(Document* document) void EditingStyle::mergeInlineStyleOfElement(StyledElement* element, CSSPropertyOverrideMode mode, PropertiesToInclude propertiesToInclude) { ASSERT(element); - if (!element->inlineStyleDecl()) + if (!element->inlineStyle()) return; switch (propertiesToInclude) { case AllProperties: - mergeStyle(element->inlineStyleDecl(), mode); + mergeStyle(element->inlineStyle(), mode); return; case OnlyEditingInheritableProperties: - mergeStyle(copyEditingProperties(element->inlineStyleDecl(), OnlyInheritableEditingProperties).get(), mode); + mergeStyle(copyEditingProperties(element->inlineStyle(), OnlyInheritableEditingProperties).get(), mode); return; case EditingPropertiesInEffect: - mergeStyle(copyEditingProperties(element->inlineStyleDecl(), AllEditingProperties).get(), mode); + mergeStyle(copyEditingProperties(element->inlineStyle(), AllEditingProperties).get(), mode); return; } } @@ -930,7 +931,7 @@ void EditingStyle::mergeInlineStyleOfElement(StyledElement* element, CSSProperty static inline bool elementMatchesAndPropertyIsNotInInlineStyleDecl(const HTMLElementEquivalent* equivalent, const StyledElement* element, EditingStyle::CSSPropertyOverrideMode mode, StylePropertySet* style) { - return equivalent->matches(element) && !equivalent->propertyExistsInStyle(element->inlineStyleDecl()) + return equivalent->matches(element) && !equivalent->propertyExistsInStyle(element->inlineStyle()) && (mode == EditingStyle::OverrideValues || !equivalent->propertyExistsInStyle(style)); } @@ -996,7 +997,7 @@ static void mergeTextDecorationValues(CSSValueList* mergedValue, const CSSValueL mergedValue->append(lineThrough.get()); } -void EditingStyle::mergeStyle(StylePropertySet* style, CSSPropertyOverrideMode mode) +void EditingStyle::mergeStyle(const StylePropertySet* style, CSSPropertyOverrideMode mode) { if (!style) return; @@ -1032,7 +1033,7 @@ static PassRefPtr<StylePropertySet> styleFromMatchedRulesForElement(Element* ele if (matchedRules) { for (unsigned i = 0; i < matchedRules->length(); i++) { if (matchedRules->item(i)->type() == CSSRule::STYLE_RULE) { - RefPtr<StylePropertySet> s = static_cast<CSSStyleRule*>(matchedRules->item(i))->declaration(); + RefPtr<StylePropertySet> s = static_cast<CSSStyleRule*>(matchedRules->item(i))->styleRule()->properties(); style->merge(s.get(), true); } } @@ -1378,6 +1379,8 @@ void StyleChange::extractTextStyles(Document* document, StylePropertySet* style, } m_applyFontFace = style->getPropertyValue(CSSPropertyFontFamily); + // Remove single quotes for Outlook 2007 compatibility. See https://bugs.webkit.org/show_bug.cgi?id=79448 + m_applyFontFace.replace('\'', ""); style->removeProperty(CSSPropertyFontFamily); if (RefPtr<CSSValue> fontSize = style->getPropertyCSSValue(CSSPropertyFontSize)) { |