summaryrefslogtreecommitdiffstats
path: root/src/xml/simple-node.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2007-07-04 23:27:58 +0000
committermental <mental@users.sourceforge.net>2007-07-04 23:27:58 +0000
commit270f8f25ff737fe755e87c057e93bdb9d840faa8 (patch)
treebcd33fdb34b2e5ad0ede9aa2b1f7400d252f54e1 /src/xml/simple-node.cpp
parentFirst stab at a connection UI from Nick (diff)
downloadinkscape-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.cpp14
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>() );