Fix T44026: ID prop delete leaves names in _RNA_UI

This commit is contained in:
Campbell Barton 2015-03-26 00:10:39 +11:00
parent 0ef9f61410
commit 1c329af74c
2 changed files with 16 additions and 3 deletions

@ -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):

@ -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'}