mesh_extra_tools: fix keymaps (un)registering issues.

Using newly-added bpy_extras.keyconfig_utils helper.
This commit is contained in:
Bastien Montagne 2017-04-08 11:10:03 +02:00
parent 2aa13cb25a
commit 582a14ff6d
3 changed files with 32 additions and 32 deletions

View File

@ -24,8 +24,8 @@
bl_info = {
"name": "Edit Tools 2",
"author": "meta-androcto",
"version": (0, 3, 1),
"blender": (2, 77, 0),
"version": (0, 3, 2),
"blender": (2, 78, 0),
"location": "View3D > Toolshelf > Tools and Specials (W-key)",
"description": "Extra mesh edit tools - modifying meshes and selection",
"warning": "",

View File

@ -21,8 +21,8 @@
bl_info = {
"name": "Pen Tool",
"author": "zmj100",
"version": (0, 2, 8),
"blender": (2, 6, 5),
"version": (0, 2, 9),
"blender": (2, 78, 0),
"location": "View3D > Tool Shelf",
"description": "",
"warning": "",
@ -32,6 +32,7 @@ bl_info = {
}
import bpy
import bpy_extras
import blf
import bgl
import bmesh
@ -522,7 +523,15 @@ class_list = [pen_tool_panel,
]
addon_keymaps = []
KEYMAPS = (
# First, keymap identifiers (last bool is True for modal km).
(("3D View", "VIEW_3D", "WINDOW", False), (
# Then a tuple of keymap items, defined by a dict of kwargs for the km new func, and a tuple of tuples (name, val)
# for ops properties, if needing non-default values.
({"idname": pen_tool_operator.bl_idname, "type": 'D', "value": 'PRESS', "ctrl": True},
()),
)),
)
def register():
@ -531,21 +540,11 @@ 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')
# 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))
bpy_extras.keyconfig_utils.addon_keymap_register(bpy.context.window_manager, KEYMAPS)
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()
bpy_extras.keyconfig_utils.addon_keymap_unregister(bpy.context.window_manager, KEYMAPS)
del bpy.types.Scene.pen_tool_props

View File

@ -3,13 +3,15 @@
bl_info = {
"name": "V/E/F Context Menu",
"author": "Stanislav Blinov",
"version": (1, 0, 0),
"blender": (2, 74, 0),
"version": (1, 0, 1),
"blender": (2, 78, 0),
"description": "Vert Edge Face Double Right Click Edit Mode",
"category": "Mesh",
}
import bpy
import bpy_extras
from bpy.types import (
Menu,
Operator,
@ -63,32 +65,31 @@ classes = [
MESH_OT_CallContextMenu
]
addon_keymaps = []
KEYMAPS = (
# First, keymap identifiers (last bool is True for modal km).
(("3D View", "VIEW_3D", "WINDOW", False), (
# Then a tuple of keymap items, defined by a dict of kwargs for the km new func, and a tuple of tuples (name, val)
# for ops properties, if needing non-default values.
({"idname": MESH_OT_CallContextMenu.bl_idname, "type": 'RIGHTMOUSE', "value": 'DOUBLE_CLICK'},
()),
)),
)
def register():
for cls in classes:
bpy.utils.register_class(cls)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
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')
addon_keymaps.append((km, kmi))
bpy_extras.keyconfig_utils.addon_keymap_register(bpy.context.window_manager, KEYMAPS)
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()
bpy_extras.keyconfig_utils.addon_keymap_unregister(bpy.context.window_manager, KEYMAPS)
for cls in classes:
bpy.utils.unregister_class(cls)
if __name__ == "__main__":
register()