Merge branch 'blender-v3.6-release'
[blender-addons.git] / power_sequencer / __init__.py
blob877de3028c5dcb11b4ebef72dd926ccb89eff33e
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # Copyright (C) 2016-2020 by Nathan Lovato, Daniel Oakey, Razvan Radulescu, and contributors
3 from typing import List, Tuple, Type
5 import bpy
7 from .addon_preferences import register_preferences, unregister_preferences
8 from .addon_properties import register_properties, unregister_properties
9 from .handlers import register_handlers, unregister_handlers
10 from .operators import get_operator_classes
11 from .tools import get_tool_classes
12 from .ui import register_ui, unregister_ui
13 from .utils import addon_auto_imports
14 from .utils.register_shortcuts import register_shortcuts
16 # load and reload submodules
17 ##################################
18 modules = addon_auto_imports.setup_addon_modules(
19 __path__, __name__, ignore_packages=[".utils", ".audiosync"]
23 bl_info = {
24 "name": "Power Sequencer",
25 "description": "Video editing tools for content creators",
26 "author": "Nathan Lovato",
27 "version": (2, 0, 2),
28 "blender": (2, 93, 3),
29 "location": "Sequencer",
30 "tracker_url": "https://github.com/GDquest/Blender-power-sequencer/issues",
31 "wiki_url": "https://www.gdquest.com/docs/documentation/power-sequencer/",
32 "support": "COMMUNITY",
33 "category": "Sequencer",
37 # We use globals to cache loaded keymaps, operators, and tools
38 addon_keymaps: List[Type] = []
39 classes_operator: List[Type] = []
40 classes_tool: List[Type] = []
43 def register():
44 global addon_keymaps
45 global classes_operator
46 global classes_tool
48 register_preferences()
49 register_properties()
50 register_handlers()
51 register_ui()
53 # Register operators
54 classes_operator = get_operator_classes()
55 for cls in classes_operator:
56 bpy.utils.register_class(cls)
58 # Register tools
59 classes_tool = get_tool_classes()
60 last_tool = {"builtin.blade"}
61 for index, cls in enumerate(classes_tool):
62 bpy.utils.register_tool(cls, after=last_tool, separator=index == 0)
63 last_tool = {cls.bl_idname}
65 # Register keymaps
66 keymaps = register_shortcuts(classes_operator)
67 addon_keymaps += keymaps
69 print("Registered {} with {} modules".format(bl_info["name"], len(modules)))
72 def unregister():
73 """Unregister"""
74 global addon_keymaps
75 global classes_operator
76 global classes_tool
78 for km, kmi in addon_keymaps:
79 km.keymap_items.remove(kmi)
80 addon_keymaps.clear()
82 for cls in classes_operator:
83 bpy.utils.unregister_class(cls)
85 for cls in classes_tool:
86 bpy.utils.unregister_tool(cls)
88 unregister_ui()
89 unregister_preferences()
90 unregister_properties()
91 unregister_handlers()
93 print("Unregistered {}".format(bl_info["name"]))