display_properties was being re-defined for each keymap item.

This commit is contained in:
Campbell Barton 2010-09-06 06:04:05 +00:00
parent 27fff49335
commit b60bc0ee85

@ -211,6 +211,19 @@ class InputKeyMapPanel(bpy.types.Panel):
for entry in children:
self.draw_entry(display_keymaps, entry, col, level + 1)
@staticmethod
def draw_kmi_properties(box, properties, title=None):
box.separator()
if title:
box.label(text=title)
flow = box.column_flow(columns=2)
for pname, value in properties.bl_rna.properties.items():
if pname != "rna_type" and not properties.is_property_hidden(pname):
if isinstance(value, bpy.types.OperatorProperties):
__class__.draw_kmi_properties(box, value, title=pname)
else:
flow.prop(properties, pname)
def draw_kmi(self, display_keymaps, kc, km, kmi, layout, level):
map_type = kmi.map_type
@ -293,22 +306,10 @@ class InputKeyMapPanel(bpy.types.Panel):
subrow.prop(kmi, "oskey", text="Cmd")
subrow.prop(kmi, "key_modifier", text="", event=True)
def display_properties(properties, title=None):
box.separator()
if title:
box.label(text=title)
flow = box.column_flow(columns=2)
for pname, value in properties.bl_rna.properties.items():
if pname != "rna_type" and not properties.is_property_hidden(pname):
if isinstance(value, bpy.types.OperatorProperties):
display_properties(value, title=pname)
else:
flow.prop(properties, pname)
# Operator properties
props = kmi.properties
if props is not None:
display_properties(props)
__class__.draw_kmi_properties(box, props)
# Modal key maps attached to this operator
if not km.is_modal:
@ -387,7 +388,6 @@ def export_properties(prefix, properties, lines=None):
lines = []
for pname, value in properties.items():
print()
if not properties.is_property_hidden(pname):
if isinstance(value, bpy.types.OperatorProperties):
export_properties(prefix + "." + pname, value, lines)