diff options
| author | MenTaLguY <mental@rydia.net> | 2007-07-04 23:27:58 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2007-07-04 23:27:58 +0000 |
| commit | 270f8f25ff737fe755e87c057e93bdb9d840faa8 (patch) | |
| tree | bcd33fdb34b2e5ad0ede9aa2b1f7400d252f54e1 /src/xml/simple-node.cpp | |
| parent | First stab at a connection UI from Nick (diff) | |
| download | inkscape-270f8f25ff737fe755e87c057e93bdb9d840faa8.tar.gz inkscape-270f8f25ff737fe755e87c057e93bdb9d840faa8.zip | |
make subtree monitoring part of XML::Node's interface
(bzr r3186)
Diffstat (limited to 'src/xml/simple-node.cpp')
| -rw-r--r-- | src/xml/simple-node.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/xml/simple-node.cpp b/src/xml/simple-node.cpp index c8b0828c4..554752941 100644 --- a/src/xml/simple-node.cpp +++ b/src/xml/simple-node.cpp @@ -165,6 +165,8 @@ SimpleNode::SimpleNode(int code) this->_document = NULL; this->_parent = this->_next = NULL; this->_first_child = this->_last_child = NULL; + + _observers.add(_subtree_observers); } SimpleNode::SimpleNode(SimpleNode const &node) @@ -199,6 +201,8 @@ SimpleNode::SimpleNode(SimpleNode const &node) { _attributes = cons(*iter, _attributes); } + + _observers.add(_subtree_observers); } gchar const *SimpleNode::name() const { @@ -267,6 +271,16 @@ bool SimpleNode::matchAttributeName(gchar const *partial_name) const { return false; } +void SimpleNode::_setParent(Node *parent) { + if (_parent) { + _subtree_observers.remove(_parent->_subtreeObservers()); + } + _parent = parent; + if (parent) { + _subtree_observers.add(parent->_subtreeObservers()); + } +} + void SimpleNode::setContent(gchar const *content) { ptr_shared<char> old_content=_content; ptr_shared<char> new_content = ( content ? share_string(content) : ptr_shared<char>() ); |
