[Bf-extensions-cvs] [b41072e] master: Mesh edit tools: Fix error unregistering addong
Sergey Sharybin
noreply at git.blender.org
Fri Apr 7 15:51:42 CEST 2017
Commit: b41072ec3a0baf30885876ff9a7c6f337b126af3
Author: Sergey Sharybin
Date: Fri Apr 7 15:51:14 2017 +0200
Branches: master
https://developer.blender.org/rBAb41072ec3a0baf30885876ff9a7c6f337b126af3
Mesh edit tools: Fix error unregistering addong
===================================================================
M mesh_extra_tools/mesh_pen_tool.py
M mesh_extra_tools/vertex_align.py
M mesh_extra_tools/vfe_specials.py
===================================================================
diff --git a/mesh_extra_tools/mesh_pen_tool.py b/mesh_extra_tools/mesh_pen_tool.py
index ebe5ae8..59bdded 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 d3b5ace..8b3be88 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 4a3e151..fef6679 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__":
More information about the Bf-extensions-cvs
mailing list