From 270f8f25ff737fe755e87c057e93bdb9d840faa8 Mon Sep 17 00:00:00 2001 From: MenTaLguY Date: Wed, 4 Jul 2007 23:27:58 +0000 Subject: make subtree monitoring part of XML::Node's interface (bzr r3186) --- src/xml/simple-node.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/xml/simple-node.cpp') 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 old_content=_content; ptr_shared new_content = ( content ? share_string(content) : ptr_shared() ); -- cgit v1.2.3