diff options
Diffstat (limited to 'release/scripts/modules/rna_keymap_ui.py')
-rw-r--r-- | release/scripts/modules/rna_keymap_ui.py | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/release/scripts/modules/rna_keymap_ui.py b/release/scripts/modules/rna_keymap_ui.py index 752db7fd5ac..756dbde23c9 100644 --- a/release/scripts/modules/rna_keymap_ui.py +++ b/release/scripts/modules/rna_keymap_ui.py @@ -355,28 +355,27 @@ def draw_filtered(display_keymaps, filter_type, filter_text, layout): def draw_hierarchy(display_keymaps, layout): - from bpy_extras import keyconfig_utils - for entry in keyconfig_utils.km_hierarchy(): + from bl_keymap_utils import keymap_hierarchy + for entry in keymap_hierarchy.generate(): draw_entry(display_keymaps, entry, layout) def draw_keymaps(context, layout): - from bpy_extras import keyconfig_utils + from bl_keymap_utils.io import keyconfig_merge wm = context.window_manager - kc = wm.keyconfigs.user + kc_user = wm.keyconfigs.user + kc_active = wm.keyconfigs.active spref = context.space_data - col = layout.column() - sub = col.column() - - subsplit = sub.split() + subsplit = layout.split() subcol = subsplit.column() - row = subcol.row(align=True) + col = subcol.column() + row = col.row(align=True) # row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config") - text = bpy.path.display_name(wm.keyconfigs.active.name) + text = bpy.path.display_name(kc_active.name) if not text: text = "Blender (default)" row.menu("USERPREF_MT_keyconfigs", text=text) @@ -389,15 +388,15 @@ def draw_keymaps(context, layout): rowsub = row.split(factor=0.33, align=True) # postpone drawing into rowsub, so we can set alert! - col.separator() - display_keymaps = keyconfig_utils.keyconfig_merge(kc, kc) + layout.separator() + display_keymaps = keyconfig_merge(kc_user, kc_user) filter_type = spref.filter_type filter_text = spref.filter_text.strip() if filter_text: filter_text = filter_text.lower() - ok = draw_filtered(display_keymaps, filter_type, filter_text, col) + ok = draw_filtered(display_keymaps, filter_type, filter_text, layout) else: - draw_hierarchy(display_keymaps, col) + draw_hierarchy(display_keymaps, layout) ok = True # go back and fill in rowsub @@ -406,3 +405,32 @@ def draw_keymaps(context, layout): if not ok: rowsubsub.alert = True rowsubsub.prop(spref, "filter_text", text="", icon='VIEWZOOM') + + if not filter_text: + # When the keyconfig defines it's own preferences. + kc_prefs = kc_active.preferences + if kc_prefs is not None: + box = col.box() + row = box.row(align=True) + + userpref = context.user_preferences + inputs = userpref.inputs + show_ui_keyconfig = inputs.show_ui_keyconfig + row.prop( + inputs, + "show_ui_keyconfig", + text="", + icon='TRIA_DOWN' if show_ui_keyconfig else 'TRIA_RIGHT', + emboss=False, + ) + row.label(text="Preferences") + + if show_ui_keyconfig: + # Defined by user preset, may contain mistakes out of our control. + try: + kc_prefs.draw(box) + except Exception: + import traceback + traceback.print_exc() + del box + del kc_prefs |