display_properties was being re-defined for each keymap item.
This commit is contained in:
@@ -211,6 +211,19 @@ class InputKeyMapPanel(bpy.types.Panel):
|
|||||||
for entry in children:
|
for entry in children:
|
||||||
self.draw_entry(display_keymaps, entry, col, level + 1)
|
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):
|
def draw_kmi(self, display_keymaps, kc, km, kmi, layout, level):
|
||||||
map_type = kmi.map_type
|
map_type = kmi.map_type
|
||||||
|
|
||||||
@@ -293,22 +306,10 @@ class InputKeyMapPanel(bpy.types.Panel):
|
|||||||
subrow.prop(kmi, "oskey", text="Cmd")
|
subrow.prop(kmi, "oskey", text="Cmd")
|
||||||
subrow.prop(kmi, "key_modifier", text="", event=True)
|
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
|
# Operator properties
|
||||||
props = kmi.properties
|
props = kmi.properties
|
||||||
if props is not None:
|
if props is not None:
|
||||||
display_properties(props)
|
__class__.draw_kmi_properties(box, props)
|
||||||
|
|
||||||
# Modal key maps attached to this operator
|
# Modal key maps attached to this operator
|
||||||
if not km.is_modal:
|
if not km.is_modal:
|
||||||
@@ -387,7 +388,6 @@ def export_properties(prefix, properties, lines=None):
|
|||||||
lines = []
|
lines = []
|
||||||
|
|
||||||
for pname, value in properties.items():
|
for pname, value in properties.items():
|
||||||
print()
|
|
||||||
if not properties.is_property_hidden(pname):
|
if not properties.is_property_hidden(pname):
|
||||||
if isinstance(value, bpy.types.OperatorProperties):
|
if isinstance(value, bpy.types.OperatorProperties):
|
||||||
export_properties(prefix + "." + pname, value, lines)
|
export_properties(prefix + "." + pname, value, lines)
|
||||||
|
Reference in New Issue
Block a user