66 lines
1.4 KiB
Python
66 lines
1.4 KiB
Python
import bpy
|
|
|
|
|
|
# keymaps
|
|
addon_keymaps = {}
|
|
|
|
|
|
def get_shortcut(idname):
|
|
""" Returns the shortcut struct for the given idname """
|
|
return bpy.context.window_manager.keyconfigs.user.keymaps["Node Editor"].keymap_items[idname]
|
|
|
|
|
|
def register_keymaps():
|
|
# registers the visual scripting keymaps
|
|
|
|
# create keymap
|
|
global addon_keymaps
|
|
|
|
wm = bpy.context.window_manager
|
|
kc = wm.keyconfigs.addon
|
|
|
|
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
|
|
|
|
# shortcut for compiling
|
|
kmi = km.keymap_items.new(
|
|
idname="sn.force_compile",
|
|
type="R",
|
|
value="PRESS",
|
|
shift=True,
|
|
ctrl=False,
|
|
alt=False,
|
|
)
|
|
addon_keymaps["compile"] = (km, kmi)
|
|
|
|
# shortcut for docs
|
|
kmi = km.keymap_items.new(
|
|
idname="sn.open_node_docs",
|
|
type="F1",
|
|
value="PRESS",
|
|
shift=False,
|
|
ctrl=False,
|
|
alt=False,
|
|
)
|
|
addon_keymaps["docs"] = (km, kmi)
|
|
|
|
# shortcut for adding a node from copied path
|
|
kmi = km.keymap_items.new(
|
|
idname="sn.add_copied_node",
|
|
type="V",
|
|
value="PRESS",
|
|
shift=True,
|
|
ctrl=False,
|
|
alt=False,
|
|
)
|
|
addon_keymaps["copied"] = (km, kmi)
|
|
|
|
|
|
def unregister_keymaps():
|
|
# unregister visual scripting keymaps
|
|
global addon_keymaps
|
|
|
|
for key in addon_keymaps:
|
|
km, kmi = addon_keymaps[ key ]
|
|
km.keymap_items.remove(kmi)
|
|
|
|
addon_keymaps.clear() |