mesh_extra_tools: fix keymaps (un)registering issues.
Using newly-added bpy_extras.keyconfig_utils helper.
This commit is contained in:
parent
2aa13cb25a
commit
582a14ff6d
|
@ -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": "",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue