From c1f5ccb11a4e685be07f6bad993b4fcefe6b2ed4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 16 Nov 2018 15:59:44 +1100 Subject: [PATCH] Keymap: allow filling in existing key-configs Needed so we can get the preferences of a key-config which are sent to a function that generates the contents. --- .../scripts/modules/bpy_extras/keyconfig_utils.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils.py b/release/scripts/modules/bpy_extras/keyconfig_utils.py index 6de0cc2e205..4d5ec5286ec 100644 --- a/release/scripts/modules/bpy_extras/keyconfig_utils.py +++ b/release/scripts/modules/bpy_extras/keyconfig_utils.py @@ -488,6 +488,15 @@ def keymap_items_from_data(km, km_items, is_modal=False): _kmi_props_setattr(kmi_props, attr, value) +def keyconfig_init_from_data(kc, keyconfig_data): + # Load data in the format defined above. + # + # Runs at load time, keep this fast! + for (km_name, km_args, km_content) in keyconfig_data: + km = kc.keymaps.new(km_name, **km_args) + keymap_items_from_data(km, km_content["items"], is_modal=km_args.get("modal", False)) + + def keyconfig_import_from_data(name, keyconfig_data): # Load data in the format defined above. # @@ -496,10 +505,7 @@ def keyconfig_import_from_data(name, keyconfig_data): import bpy wm = bpy.context.window_manager kc = wm.keyconfigs.new(name) - for (km_name, km_args, km_content) in keyconfig_data: - km = kc.keymaps.new(km_name, **km_args) - keymap_items_from_data(km, km_content["items"], is_modal=km_args.get("modal", False)) - + keyconfig_init_from_data(kc, keyconfig_data) return kc