]> git.mxchange.org Git - simgear.git/blobdiff - simgear/props/PropertyBasedElement.cxx
cppbind: automatic conversion of SGReferenced derived pointers.
[simgear.git] / simgear / props / PropertyBasedElement.cxx
index b1667e8c80623a85ae13a0b5cf7cd5244e261ac4..d0e4f4614e1e1f6560228cbdab76f8b6dc0470eb 100644 (file)
@@ -30,10 +30,29 @@ namespace simgear
 
   //------------------------------------------------------------------------------
   PropertyBasedElement::~PropertyBasedElement()
+  {
+    onDestroy();
+    removeListener();
+  }
+
+  //----------------------------------------------------------------------------
+  void PropertyBasedElement::removeListener()
   {
     _node->removeChangeListener(this);
   }
 
+  //----------------------------------------------------------------------------
+  void PropertyBasedElement::destroy()
+  {
+    if( !_node )
+      return;
+
+    // TODO check if really not in use anymore
+    if( _node->getParent() )
+      _node->getParent()
+           ->removeChild(_node->getName(), _node->getIndex(), false);
+  }
+
   //------------------------------------------------------------------------------
   SGConstPropertyNode_ptr PropertyBasedElement::getProps() const
   {