diff options
Diffstat (limited to 'release/scripts/ui/space_userpref_keymap.py')
-rw-r--r-- | release/scripts/ui/space_userpref_keymap.py | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/release/scripts/ui/space_userpref_keymap.py b/release/scripts/ui/space_userpref_keymap.py index 0cdebd4734c..a78ef1be36f 100644 --- a/release/scripts/ui/space_userpref_keymap.py +++ b/release/scripts/ui/space_userpref_keymap.py @@ -124,10 +124,11 @@ def _merge_keymaps(kc1, kc2): return merged_keymaps -class PREFS_MT_keyconfigs(bpy.types.Menu): +class USERPREF_MT_keyconfigs(bpy.types.Menu): bl_label = "KeyPresets" preset_subdir = "keyconfig" preset_operator = "wm.keyconfig_activate" + def draw(self, context): props = self.layout.operator("wm.context_set_value", text="Blender (default)") props.data_path = "window_manager.keyconfigs.active" @@ -279,7 +280,7 @@ class InputKeyMapPanel(bpy.types.Panel): else: row.label() - if kmi.id: + if not kmi.is_user_defined: op = row.operator("wm.keyitem_restore", text="", icon='BACK') op.item_id = kmi.id op = row.operator("wm.keyitem_remove", text="", icon='X') @@ -379,15 +380,15 @@ class InputKeyMapPanel(bpy.types.Panel): subcol = subsplit.column() row = subcol.row(align=True) - + #row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config:") text = bpy.path.display_name(context.window_manager.keyconfigs.active.name) if not text: text = "Blender (default)" - row.menu("PREFS_MT_keyconfigs", text=text) + row.menu("USERPREF_MT_keyconfigs", text=text) row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMIN") row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMOUT").remove_active = True - + # layout.context_pointer_set("keyconfig", wm.keyconfigs.active) # row.operator("wm.keyconfig_remove", text="", icon='X') @@ -575,7 +576,7 @@ class WM_OT_keyconfig_import(bpy.types.Operator): def invoke(self, context, event): wm = context.window_manager - wm.add_fileselect(self) + wm.fileselect_add(self) return {'RUNNING_MODAL'} # This operator is also used by interaction presets saving - AddPresetBase @@ -605,7 +606,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator): f.write("import bpy\n") f.write("import os\n\n") f.write("wm = bpy.context.window_manager\n") - f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller + f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller # Generate a list of keymaps to export: # @@ -665,7 +666,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator): def invoke(self, context, event): wm = context.window_manager - wm.add_fileselect(self) + wm.fileselect_add(self) return {'RUNNING_MODAL'} @@ -708,12 +709,18 @@ class WM_OT_keyitem_restore(bpy.types.Operator): item_id = IntProperty(name="Item Identifier", description="Identifier of the item to remove") + @classmethod + def poll(cls, context): + km = context.keymap + return km.is_user_defined + def execute(self, context): wm = context.window_manager km = context.keymap kmi = km.items.from_id(self.item_id) - km.restore_item_to_default(kmi) + if not kmi.is_user_defined: + km.restore_item_to_default(kmi) return {'FINISHED'} @@ -749,8 +756,12 @@ class WM_OT_keyitem_remove(bpy.types.Operator): item_id = IntProperty(name="Item Identifier", description="Identifier of the item to remove") + @classmethod + def poll(cls, context): + km = context.keymap + return km.is_user_defined + def execute(self, context): - wm = context.window_manager km = context.keymap kmi = km.items.from_id(self.item_id) km.items.remove(kmi) @@ -776,11 +787,11 @@ class WM_OT_keyconfig_remove(bpy.types.Operator): def register(): - pass + bpy.utils.register_module(__name__) def unregister(): - pass + bpy.utils.unregister_module(__name__) if __name__ == "__main__": register() |