From ae8d56888683894676f924232b1f66c879c8a82c Mon Sep 17 00:00:00 2001 From: Campbell Barton <ideasman42@gmail.com> Date: Tue, 7 May 2019 13:34:49 +1000 Subject: [PATCH] Fix running boolean tools in background mode --- object_boolean_tools.py | 122 ++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/object_boolean_tools.py b/object_boolean_tools.py index ded30a1ac..28e9ebc9c 100644 --- a/object_boolean_tools.py +++ b/object_boolean_tools.py @@ -1312,67 +1312,69 @@ def register(): pass wm = bpy.context.window_manager + kc = wm.keyconfigs.addon # create the boolean menu hotkey - km = wm.keyconfigs.addon.keymaps.new(name="Object Mode") - - kmi = km.keymap_items.new("wm.call_menu", "B", "PRESS", ctrl=True, shift=True) - kmi.properties.name = "VIEW3D_MT_booltool_menu" - addon_keymaps.append((km, kmi)) - - # Brush Operators - kmi = km.keymap_items.new(BTool_Union.bl_idname, "NUMPAD_PLUS", "PRESS", ctrl=True) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new(BTool_Diff.bl_idname, "NUMPAD_MINUS", "PRESS", ctrl=True) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new(BTool_Inters.bl_idname, "NUMPAD_ASTERIX", "PRESS", ctrl=True) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new(BTool_Slice.bl_idname, "NUMPAD_SLASH", "PRESS", ctrl=True) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new(BTool_BrushToMesh.bl_idname, "NUMPAD_ENTER", "PRESS", ctrl=True) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new( - BTool_AllBrushToMesh.bl_idname, - "NUMPAD_ENTER", - "PRESS", - ctrl=True, - shift=True, - ) - addon_keymaps.append((km, kmi)) - - # Auto Operators - kmi = km.keymap_items.new( - OBJECT_OT_BoolTool_Auto_Union.bl_idname, - "NUMPAD_PLUS", - "PRESS", - ctrl=True, - shift=True, - ) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new( - OBJECT_OT_BoolTool_Auto_Difference.bl_idname, - "NUMPAD_MINUS", - "PRESS", - ctrl=True, - shift=True, - ) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new( - OBJECT_OT_BoolTool_Auto_Intersect.bl_idname, - "NUMPAD_ASTERIX", - "PRESS", - ctrl=True, - shift=True, - ) - addon_keymaps.append((km, kmi)) - kmi = km.keymap_items.new( - OBJECT_OT_BoolTool_Auto_Slice.bl_idname, - "NUMPAD_SLASH", - "PRESS", - ctrl=True, - shift=True, - ) - addon_keymaps.append((km, kmi)) + if kc is not None: + km = kc.keymaps.new(name="Object Mode") + + kmi = km.keymap_items.new("wm.call_menu", "B", "PRESS", ctrl=True, shift=True) + kmi.properties.name = "VIEW3D_MT_booltool_menu" + addon_keymaps.append((km, kmi)) + + # Brush Operators + kmi = km.keymap_items.new(BTool_Union.bl_idname, "NUMPAD_PLUS", "PRESS", ctrl=True) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new(BTool_Diff.bl_idname, "NUMPAD_MINUS", "PRESS", ctrl=True) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new(BTool_Inters.bl_idname, "NUMPAD_ASTERIX", "PRESS", ctrl=True) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new(BTool_Slice.bl_idname, "NUMPAD_SLASH", "PRESS", ctrl=True) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new(BTool_BrushToMesh.bl_idname, "NUMPAD_ENTER", "PRESS", ctrl=True) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new( + BTool_AllBrushToMesh.bl_idname, + "NUMPAD_ENTER", + "PRESS", + ctrl=True, + shift=True, + ) + addon_keymaps.append((km, kmi)) + + # Auto Operators + kmi = km.keymap_items.new( + OBJECT_OT_BoolTool_Auto_Union.bl_idname, + "NUMPAD_PLUS", + "PRESS", + ctrl=True, + shift=True, + ) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new( + OBJECT_OT_BoolTool_Auto_Difference.bl_idname, + "NUMPAD_MINUS", + "PRESS", + ctrl=True, + shift=True, + ) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new( + OBJECT_OT_BoolTool_Auto_Intersect.bl_idname, + "NUMPAD_ASTERIX", + "PRESS", + ctrl=True, + shift=True, + ) + addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new( + OBJECT_OT_BoolTool_Auto_Slice.bl_idname, + "NUMPAD_SLASH", + "PRESS", + ctrl=True, + shift=True, + ) + addon_keymaps.append((km, kmi)) def unregister(): @@ -1380,7 +1382,7 @@ def unregister(): # remove keymaps when add-on is deactivated wm = bpy.context.window_manager kc = wm.keyconfigs.addon - if kc: + if kc is not None: for km, kmi in addon_keymaps: km.keymap_items.remove(kmi) -- GitLab