diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-07 16:51:14 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-07 16:51:35 +0300 |
commit | b41072ec3a0baf30885876ff9a7c6f337b126af3 (patch) | |
tree | 647fd3ed50d0cabb0075b6fd8edf9ad246a8892c | |
parent | 29f6146c10b4e0685382bec9dfdf8f6ca3257c21 (diff) |
Mesh edit tools: Fix error unregistering addong
-rw-r--r-- | mesh_extra_tools/mesh_pen_tool.py | 22 | ||||
-rw-r--r-- | mesh_extra_tools/vertex_align.py | 4 | ||||
-rw-r--r-- | mesh_extra_tools/vfe_specials.py | 22 |
3 files changed, 26 insertions, 22 deletions
diff --git a/mesh_extra_tools/mesh_pen_tool.py b/mesh_extra_tools/mesh_pen_tool.py index ebe5ae8d..59bdded1 100644 --- a/mesh_extra_tools/mesh_pen_tool.py +++ b/mesh_extra_tools/mesh_pen_tool.py @@ -522,6 +522,9 @@ class_list = [pen_tool_panel, ] +addon_keymaps = [] + + def register(): for c in class_list: bpy.utils.register_class(c) @@ -529,24 +532,25 @@ def register(): bpy.types.Scene.pen_tool_props = PointerProperty(type=pen_tool_properties) wm = bpy.context.window_manager - km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D') + km = wm.keyconfigs.addon.keymaps.new(name='3D View X', space_type='VIEW_3D') # Note: left click + D key is reserved for Grease Pencil draw kmi = km.keymap_items.new("pen_tool.operator", 'D', 'PRESS', ctrl=True) + addon_keymaps.append((km, kmi)) def unregister(): - for c in class_list: - bpy.utils.unregister_class(c) + wm = bpy.context.window_manager + kc = wm.keyconfigs.addon + if kc: + for km, kmi in addon_keymaps: + km.keymap_items.remove(kmi) + addon_keymaps.clear() del bpy.types.Scene.pen_tool_props - wm = bpy.context.window_manager - km = wm.keyconfigs.addon.keymaps['3D View'] - for kmi in km.keymap_items: - if kmi.idname == 'pen_tool.operator': - km.keymap_items.remove(kmi) - break + for c in class_list: + bpy.utils.unregister_class(c) if __name__ == "__main__": diff --git a/mesh_extra_tools/vertex_align.py b/mesh_extra_tools/vertex_align.py index d3b5ace6..8b3be88b 100644 --- a/mesh_extra_tools/vertex_align.py +++ b/mesh_extra_tools/vertex_align.py @@ -286,11 +286,11 @@ def register(): # ------ ------ def unregister(): + del bpy.types.Scene.va_custom_props + for c in classes: bpy.utils.unregister_class(c) - bpy.ops.wm.properties_remove(data_path="scene", property="va_custom_props") - # ------ ------ if __name__ == "__main__": register() diff --git a/mesh_extra_tools/vfe_specials.py b/mesh_extra_tools/vfe_specials.py index 4a3e1518..fef66795 100644 --- a/mesh_extra_tools/vfe_specials.py +++ b/mesh_extra_tools/vfe_specials.py @@ -71,23 +71,23 @@ def register(): bpy.utils.register_class(cls) wm = bpy.context.window_manager - km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D') - kmi = km.keymap_items.new('mesh.addon_call_context_menu', 'RIGHTMOUSE', 'DOUBLE_CLICK') + if wm.keyconfigs.addon: + km = wm.keyconfigs.addon.keymaps.new(name='3D View X', space_type='VIEW_3D') + kmi = km.keymap_items.new('mesh.addon_call_context_menu', 'RIGHTMOUSE', 'DOUBLE_CLICK') + addon_keymaps.append((km, kmi)) def unregister(): + wm = bpy.context.window_manager + kc = wm.keyconfigs.addon + if kc: + for km, kmi in addon_keymaps: + km.keymap_items.remove(kmi) + addon_keymaps.clear() + for cls in classes: bpy.utils.unregister_class(cls) - wm = bpy.context.window_manager - - # remove multiselect keybinding - km = wm.keyconfigs.addon.keymaps['3D View'] - for kmi in km.keymap_items: - if kmi.idname == 'wm.call_menu': - if kmi.properties.name == "mesh.addon_call_context_menu": - km.keymap_items.remove(kmi) - break if __name__ == "__main__": |