From 50e3cd0bb3ffd92b7811887e99e69e581813c8ed Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 14 Jul 2018 10:15:46 +0200 Subject: Keymap: option to export all keymaps Useful to store a snapshot of the current keymap state so changes to the default keymap are ignored. Also useful for testing keymap export works properly. --- release/scripts/modules/bpy_extras/keyconfig_utils.py | 8 +++++--- release/scripts/startup/bl_operators/wm.py | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils.py b/release/scripts/modules/bpy_extras/keyconfig_utils.py index 3a9570a57c4..0ff6595eca9 100644 --- a/release/scripts/modules/bpy_extras/keyconfig_utils.py +++ b/release/scripts/modules/bpy_extras/keyconfig_utils.py @@ -296,8 +296,10 @@ def _kmistr(kmi, is_modal): return "".join(s) -def keyconfig_export(wm, kc, filepath): - +def keyconfig_export( + wm, kc, filepath, *, + all_keymaps=False, +): f = open(filepath, "w") f.write("import bpy\n") @@ -327,7 +329,7 @@ def keyconfig_export(wm, kc, filepath): keymaps = [] edited_kc = FakeKeyConfig() for km in wm.keyconfigs.user.keymaps: - if km.is_user_modified: + if all_keymaps or km.is_user_modified: edited_kc.keymaps.append(km) # merge edited keymaps with non-default keyconfig, if it exists if kc != wm.keyconfigs.default: diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 5b12f6196a4..238c34f6853 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -1629,6 +1629,11 @@ class WM_OT_keyconfig_export(Operator): bl_idname = "wm.keyconfig_export" bl_label = "Export Key Configuration..." + all_keymaps = BoolProperty( + name="All Keymaps", + default=False, + description="Write all keymaps (not just user modified)", + ) filepath = StringProperty( subtype='FILE_PATH', default="keymap.py", @@ -1664,6 +1669,7 @@ class WM_OT_keyconfig_export(Operator): wm, wm.keyconfigs.active, self.filepath, + all_keymaps=self.all_keymaps, ) return {'FINISHED'} -- cgit v1.2.3