58 lines
2.0 KiB
Python
58 lines
2.0 KiB
Python
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
|
from typing import List, Tuple
|
|
|
|
import bpy
|
|
from bpy.app.handlers import persistent
|
|
|
|
addon_keymaps: List[Tuple[bpy.types.KeyMap, bpy.types.KeyMapItem]] = []
|
|
|
|
|
|
@persistent
|
|
def copy_play_anim(dummy):
|
|
wm = bpy.context.window_manager
|
|
km = wm.keyconfigs.addon.keymaps.new(name="File Browser Main", space_type="FILE_BROWSER")
|
|
|
|
km_frames = wm.keyconfigs.user.keymaps.get('Frames')
|
|
if km_frames:
|
|
play = km_frames.keymap_items.get('screen.animation_play')
|
|
if play:
|
|
kmi = km.keymap_items.new(
|
|
"assetlib.play_preview",
|
|
play.type, play.value,
|
|
any=play.any, shift=play.shift, ctrl=play.ctrl, alt=play.alt,
|
|
oskey=play.oskey, key_modifier=play.key_modifier,
|
|
)
|
|
addon_keymaps.append((km, kmi))
|
|
|
|
|
|
def register() -> None:
|
|
wm = bpy.context.window_manager
|
|
if wm.keyconfigs.addon is None:
|
|
# This happens when Blender is running in the background.
|
|
return
|
|
|
|
km = wm.keyconfigs.addon.keymaps.new(name="File Browser Main", space_type="FILE_BROWSER")
|
|
|
|
kmi = km.keymap_items.new("wm.call_menu", "RIGHTMOUSE", "PRESS")
|
|
kmi.properties.name = 'ASSETLIB_MT_context_menu'
|
|
addon_keymaps.append((km, kmi))
|
|
|
|
kmi = km.keymap_items.new("assetlib.play_preview", "SPACE", "PRESS")
|
|
addon_keymaps.append((km, kmi))
|
|
|
|
# km = addon.keymaps.new(name = "Grease Pencil Stroke Paint Mode", space_type = "EMPTY")
|
|
# kmi = km.keymap_items.new('wm.call_panel', type='F2', value='PRESS')
|
|
|
|
if 'copy_play_anim' not in [hand.__name__ for hand in bpy.app.handlers.load_post]:
|
|
bpy.app.handlers.load_post.append(copy_play_anim)
|
|
|
|
def unregister() -> None:
|
|
# Clear shortcuts from the keymap.
|
|
if 'copy_play_anim' in [hand.__name__ for hand in bpy.app.handlers.load_post]:
|
|
bpy.app.handlers.load_post.remove(copy_play_anim)
|
|
|
|
for km, kmi in addon_keymaps:
|
|
km.keymap_items.remove(kmi)
|
|
addon_keymaps.clear() |