| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) |
| 3 * 1999 Waldo Bastian (bastian@kde.org) | 3 * 1999 Waldo Bastian (bastian@kde.org) |
| 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) | 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) |
| 5 * 2001-2003 Dirk Mueller (mueller@kde.org) | 5 * 2001-2003 Dirk Mueller (mueller@kde.org) |
| 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) | 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) |
| 8 * Copyright (C) 2010 Google Inc. All rights reserved. | 8 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 str.appendLiteral("$="); | 674 str.appendLiteral("$="); |
| 675 break; | 675 break; |
| 676 case CSSSelector::Contain: | 676 case CSSSelector::Contain: |
| 677 str.appendLiteral("*="); | 677 str.appendLiteral("*="); |
| 678 break; | 678 break; |
| 679 default: | 679 default: |
| 680 break; | 680 break; |
| 681 } | 681 } |
| 682 if (cs->m_match != CSSSelector::Set) { | 682 if (cs->m_match != CSSSelector::Set) { |
| 683 serializeString(cs->value(), str); | 683 serializeString(cs->value(), str); |
| 684 if (cs->attributeFlags() & CaseInsensitive) |
| 685 str.append(" i"); |
| 684 str.append(']'); | 686 str.append(']'); |
| 685 } | 687 } |
| 686 } | 688 } |
| 687 if (cs->relation() != CSSSelector::SubSelector || !cs->tagHistory()) | 689 if (cs->relation() != CSSSelector::SubSelector || !cs->tagHistory()) |
| 688 break; | 690 break; |
| 689 cs = cs->tagHistory(); | 691 cs = cs->tagHistory(); |
| 690 } | 692 } |
| 691 | 693 |
| 692 if (const CSSSelector* tagHistory = cs->tagHistory()) { | 694 if (const CSSSelector* tagHistory = cs->tagHistory()) { |
| 693 switch (cs->relation()) { | 695 switch (cs->relation()) { |
| 694 case CSSSelector::Descendant: | 696 case CSSSelector::Descendant: |
| 695 return tagHistory->selectorText(" " + str.toString() + rightSide); | 697 return tagHistory->selectorText(" " + str.toString() + rightSide); |
| 696 case CSSSelector::Child: | 698 case CSSSelector::Child: |
| 697 return tagHistory->selectorText(" > " + str.toString() + rightSide); | 699 return tagHistory->selectorText(" > " + str.toString() + rightSide); |
| 698 case CSSSelector::ShadowDeep: | 700 case CSSSelector::ShadowDeep: |
| 699 return tagHistory->selectorText(" /deep/ " + str.toString() + rightS
ide); | 701 return tagHistory->selectorText(" /deep/ " + str.toString() + rightS
ide); |
| 700 case CSSSelector::DirectAdjacent: | 702 case CSSSelector::DirectAdjacent: |
| 701 return tagHistory->selectorText(" + " + str.toString() + rightSide); | 703 return tagHistory->selectorText(" + " + str.toString() + rightSide); |
| 702 case CSSSelector::IndirectAdjacent: | 704 case CSSSelector::IndirectAdjacent: |
| 703 return tagHistory->selectorText(" ~ " + str.toString() + rightSide); | 705 return tagHistory->selectorText(" ~ " + str.toString() + rightSide); |
| 704 case CSSSelector::SubSelector: | 706 case CSSSelector::SubSelector: |
| 705 ASSERT_NOT_REACHED(); | 707 ASSERT_NOT_REACHED(); |
| 706 case CSSSelector::ShadowPseudo: | 708 case CSSSelector::ShadowPseudo: |
| 707 return tagHistory->selectorText(str.toString() + rightSide); | 709 return tagHistory->selectorText(str.toString() + rightSide); |
| 708 } | 710 } |
| 709 } | 711 } |
| 710 return str.toString() + rightSide; | 712 return str.toString() + rightSide; |
| 711 } | 713 } |
| 712 | 714 |
| 713 void CSSSelector::setAttribute(const QualifiedName& value) | 715 void CSSSelector::setAttribute(const QualifiedName& value, unsigned flags) |
| 714 { | 716 { |
| 715 createRareData(); | 717 createRareData(); |
| 716 m_data.m_rareData->m_attribute = value; | 718 m_data.m_rareData->m_attribute = value; |
| 719 m_data.m_rareData->m_attributeFlags = flags; |
| 717 } | 720 } |
| 718 | 721 |
| 719 void CSSSelector::setArgument(const AtomicString& value) | 722 void CSSSelector::setArgument(const AtomicString& value) |
| 720 { | 723 { |
| 721 createRareData(); | 724 createRareData(); |
| 722 m_data.m_rareData->m_argument = value; | 725 m_data.m_rareData->m_argument = value; |
| 723 } | 726 } |
| 724 | 727 |
| 725 void CSSSelector::setSelectorList(PassOwnPtr<CSSSelectorList> selectorList) | 728 void CSSSelector::setSelectorList(PassOwnPtr<CSSSelectorList> selectorList) |
| 726 { | 729 { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 { | 813 { |
| 811 ASSERT(m_hasRareData); | 814 ASSERT(m_hasRareData); |
| 812 return m_data.m_rareData->matchNth(count); | 815 return m_data.m_rareData->matchNth(count); |
| 813 } | 816 } |
| 814 | 817 |
| 815 CSSSelector::RareData::RareData(const AtomicString& value) | 818 CSSSelector::RareData::RareData(const AtomicString& value) |
| 816 : m_value(value) | 819 : m_value(value) |
| 817 , m_a(0) | 820 , m_a(0) |
| 818 , m_b(0) | 821 , m_b(0) |
| 819 , m_attribute(anyQName()) | 822 , m_attribute(anyQName()) |
| 823 , m_attributeFlags(NoAttributeFlags) |
| 820 , m_argument(nullAtom) | 824 , m_argument(nullAtom) |
| 821 { | 825 { |
| 822 } | 826 } |
| 823 | 827 |
| 824 CSSSelector::RareData::~RareData() | 828 CSSSelector::RareData::~RareData() |
| 825 { | 829 { |
| 826 } | 830 } |
| 827 | 831 |
| 828 // a helper function for parsing nth-arguments | 832 // a helper function for parsing nth-arguments |
| 829 bool CSSSelector::RareData::parseNth() | 833 bool CSSSelector::RareData::parseNth() |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 878 return false; | 882 return false; |
| 879 return (count - m_b) % m_a == 0; | 883 return (count - m_b) % m_a == 0; |
| 880 } else { | 884 } else { |
| 881 if (count > m_b) | 885 if (count > m_b) |
| 882 return false; | 886 return false; |
| 883 return (m_b - count) % (-m_a) == 0; | 887 return (m_b - count) % (-m_a) == 0; |
| 884 } | 888 } |
| 885 } | 889 } |
| 886 | 890 |
| 887 } // namespace WebCore | 891 } // namespace WebCore |
| OLD | NEW |