From f6b35c29c1ed4e0de17ecd44b998acdd2ebabb2e Mon Sep 17 00:00:00 2001
From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 6 Jul 2010 12:30:29 +0000
Subject: [PATCH] Add RemoveProp to generic property container

Fixes BZDNG-138

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2534 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 .../base/src/export_helper/generic_property_def.hh   |  1 +
 modules/base/src/generic_property.hh                 | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/modules/base/src/export_helper/generic_property_def.hh b/modules/base/src/export_helper/generic_property_def.hh
index 3203bc198..11c5dfb80 100644
--- a/modules/base/src/export_helper/generic_property_def.hh
+++ b/modules/base/src/export_helper/generic_property_def.hh
@@ -185,6 +185,7 @@ void generic_prop_def(O& bp_class)
     .def("SetGenericFloatProperty", &depr_set_float<C>)
     .def("SetGenericBoolProperty", &depr_set_bool<C>)
     .def("SetGenericStringProperty", &depr_set_string<C>)
+    .def("RemoveProp", &C::RemoveProp)
   ;
 }
 
diff --git a/modules/base/src/generic_property.hh b/modules/base/src/generic_property.hh
index 4ea8d3253..03ddafedf 100644
--- a/modules/base/src/generic_property.hh
+++ b/modules/base/src/generic_property.hh
@@ -102,6 +102,12 @@ public:
     }
   }
   
+  void RemoveProp(const String& key)
+  {
+    if (map_) {
+      map_->erase(key);
+    }
+  }
   void Assign(const GenericPropContainerImpl& impl)
   {
     if (impl.map_) {
@@ -159,6 +165,7 @@ protected:
   {
     return static_cast<const H*>(this)->GpImpl();
   }  
+  
 public:
   /// \brief checks existence of property
   bool HasProp(const String& key) const {
@@ -296,6 +303,11 @@ public:
   {
     this->GetImpl()->GenericProp(key)=value;
   }
+  
+  void RemoveProp(const String& key)
+  {
+    this->GetImpl()->RemoveProp(key);
+  }
 };
 
 
-- 
GitLab