[Bf-blender-cvs] [1c329af] master: Fix T44026: ID prop delete leaves names in _RNA_UI

Campbell Barton noreply at git.blender.org
Wed Mar 25 14:12:38 CET 2015


Commit: 1c329af74cb2720fbb2e24a58ae15046d5c5c957
Author: Campbell Barton
Date:   Thu Mar 26 00:10:39 2015 +1100
Branches: master
https://developer.blender.org/rB1c329af74cb2720fbb2e24a58ae15046d5c5c957

Fix T44026: ID prop delete leaves names in _RNA_UI

===================================================================

M	release/scripts/modules/rna_prop_ui.py
M	release/scripts/startup/bl_operators/wm.py

===================================================================

diff --git a/release/scripts/modules/rna_prop_ui.py b/release/scripts/modules/rna_prop_ui.py
index f464945..44722fa 100644
--- a/release/scripts/modules/rna_prop_ui.py
+++ b/release/scripts/modules/rna_prop_ui.py
@@ -32,6 +32,13 @@ def rna_idprop_ui_get(item, create=True):
             return None
 
 
+def rna_idprop_ui_del(item):
+    try:
+        del item['_RNA_UI']
+    except KeyError:
+        pass
+
+
 def rna_idprop_ui_prop_get(item, prop, create=True):
 
     rna_ui = rna_idprop_ui_get(item, create)
@@ -46,7 +53,7 @@ def rna_idprop_ui_prop_get(item, prop, create=True):
         return rna_ui[prop]
 
 
-def rna_idprop_ui_prop_clear(item, prop):
+def rna_idprop_ui_prop_clear(item, prop, remove=True):
     rna_ui = rna_idprop_ui_get(item, False)
 
     if rna_ui is None:
@@ -54,8 +61,10 @@ def rna_idprop_ui_prop_clear(item, prop):
 
     try:
         del rna_ui[prop]
-    except:
+    except KeyError:
         pass
+    if remove and len(item.keys()) == 1:
+        rna_idprop_ui_del(item)
 
 
 def rna_idprop_context_value(context, context_member, property_type):
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index a48415c..7ac9fa4 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1296,9 +1296,13 @@ class WM_OT_properties_remove(Operator):
     property = rna_property
 
     def execute(self, context):
+        from rna_prop_ui import rna_idprop_ui_prop_clear
         data_path = self.data_path
         item = eval("context.%s" % data_path)
-        del item[self.property]
+        prop = self.property
+        del item[prop]
+        rna_idprop_ui_prop_clear(item, prop)
+
         return {'FINISHED'}




More information about the Bf-blender-cvs mailing list