Code

Pot and Dutch translation update
[inkscape.git] / src / xml / helper-observer.cpp
1 #include "helper-observer.h"
3 namespace Inkscape {
4 namespace XML {
6 // Very simple observer that just emits a signal if anything happens to a node
7 SignalObserver::SignalObserver()
8     : _oldsel(0)
9 {}
11 // Add this observer to the SPObject and remove it from any previous object
12 void SignalObserver::set(SPObject* o)
13 {
14     if(_oldsel && _oldsel->repr)
15         _oldsel->repr->removeObserver(*this);
16     if(o && o->repr)
17         o->repr->addObserver(*this);
18     _oldsel = o;
19 }
21 void SignalObserver::notifyChildAdded(XML::Node&, XML::Node&, XML::Node*)
22 { signal_changed()(); }
24 void SignalObserver::notifyChildRemoved(XML::Node&, XML::Node&, XML::Node*)
25 { signal_changed()(); }
27 void SignalObserver::notifyChildOrderChanged(XML::Node&, XML::Node&, XML::Node*, XML::Node*)
28 { signal_changed()(); }
30 void SignalObserver::notifyContentChanged(XML::Node&, Util::ptr_shared<char>, Util::ptr_shared<char>)
31 {}
33 void SignalObserver::notifyAttributeChanged(XML::Node&, GQuark, Util::ptr_shared<char>, Util::ptr_shared<char>)
34 { signal_changed()(); }
36 sigc::signal<void>& SignalObserver::signal_changed()
37 {
38     return _signal_changed;
39 }
41 } //namespace XML
42 } //namespace Inkscape