~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/3rdparty/webkit/WebCore/wml/WMLTaskElement.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2009-11-02 18:30:08 UTC
  • mfrom: (1.2.2 upstream)
  • mto: (15.2.5 experimental)
  • mto: This revision was merged to the branch mainline in revision 88.
  • Revision ID: james.westby@ubuntu.com-20091102183008-b6a4gcs128mvfb3m
Tags: upstream-4.6.0~beta1
ImportĀ upstreamĀ versionĀ 4.6.0~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
    WMLElement::insertedIntoDocument();
49
49
 
50
50
    Node* parent = parentNode();
51
 
    ASSERT(parent);
52
 
 
53
51
    if (!parent || !parent->isWMLElement())
54
52
        return;
55
53
 
61
59
        static_cast<WMLOnEventElement*>(parent)->registerTask(this);
62
60
}
63
61
 
 
62
void WMLTaskElement::removedFromDocument()
 
63
{
 
64
    Node* parent = parentNode();
 
65
    if (parent && parent->isWMLElement()) {
 
66
        if (parent->hasTagName(anchorTag))
 
67
            static_cast<WMLAnchorElement*>(parent)->deregisterTask(this);
 
68
        else if (parent->hasTagName(doTag))
 
69
            static_cast<WMLDoElement*>(parent)->deregisterTask(this);
 
70
        else if (parent->hasTagName(oneventTag))
 
71
            static_cast<WMLOnEventElement*>(parent)->deregisterTask(this);
 
72
    }
 
73
 
 
74
    WMLElement::removedFromDocument();
 
75
}
 
76
 
64
77
void WMLTaskElement::registerVariableSetter(WMLSetvarElement* element)
65
78
{
66
 
    ASSERT(element);
67
 
    m_variableSetterElements.add(element);
 
79
    ASSERT(m_variableSetterElements.find(element) == WTF::notFound);
 
80
    m_variableSetterElements.append(element);
 
81
}
 
82
 
 
83
void WMLTaskElement::deregisterVariableSetter(WMLSetvarElement* element)
 
84
{
 
85
    size_t position = m_variableSetterElements.find(element);
 
86
    ASSERT(position != WTF::notFound);
 
87
    m_variableSetterElements.remove(position);
68
88
}
69
89
 
70
90
void WMLTaskElement::storeVariableState(WMLPageState* pageState)
73
93
        return;
74
94
 
75
95
    WMLVariableMap variables;
76
 
    HashSet<WMLSetvarElement*>::iterator it = m_variableSetterElements.begin();
77
 
    HashSet<WMLSetvarElement*>::iterator end = m_variableSetterElements.end();
 
96
    Vector<WMLSetvarElement*>::iterator it = m_variableSetterElements.begin();
 
97
    Vector<WMLSetvarElement*>::iterator end = m_variableSetterElements.end();
78
98
 
79
99
    for (; it != end; ++it) {
80
100
        WMLSetvarElement* setterElement = (*it);
81
 
        if (setterElement->name().isEmpty())
 
101
 
 
102
        String name = setterElement->name();
 
103
        if (name.isEmpty())
82
104
            continue;
83
105
 
84
 
        variables.set(setterElement->name(), setterElement->value());
 
106
        String value = setterElement->value();
 
107
        variables.set(name, value);
 
108
 
 
109
        // The next setvar element may depend on this variable value. It's safe to store the current
 
110
        // name value pair in the page state, as the whole page state is replaced soon by this new map
 
111
        pageState->storeVariable(name, value);
85
112
    }
86
113
 
87
 
    if (variables.isEmpty())
88
 
        return;
89
 
 
90
114
    pageState->storeVariables(variables);
91
115
}
92
116