Fix io_anim_camera error exporting cameras with quotes in their name
[blender-addons.git] / power_sequencer / __init__.py
blobc646da7c1434d23a417c5b9af5a0dd32f60fdb48
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # Copyright 2016-2020 by Nathan Lovato, Daniel Oakey, Razvan Radulescu, and contributors
4 # This file is part of Power Sequencer.
6 from typing import List, Tuple, Type
8 import bpy
10 from .addon_preferences import register_preferences, unregister_preferences
11 from .addon_properties import register_properties, unregister_properties
12 from .handlers import register_handlers, unregister_handlers
13 from .operators import get_operator_classes
14 from .tools import get_tool_classes
15 from .ui import register_ui, unregister_ui
16 from .utils import addon_auto_imports
17 from .utils.register_shortcuts import register_shortcuts
19 # load and reload submodules
20 ##################################
21 modules = addon_auto_imports.setup_addon_modules(
22 __path__, __name__, ignore_packages=[".utils", ".audiosync"]
26 bl_info = {
27 "name": "Power Sequencer",
28 "description": "Video editing tools for content creators",
29 "author": "Nathan Lovato",
30 "version": (1, 5, 0),
31 "blender": (2, 81, 0),
32 "location": "Sequencer",
33 "tracker_url": "https://github.com/GDquest/Blender-power-sequencer/issues",
34 "wiki_url": "https://www.gdquest.com/docs/documentation/power-sequencer/",
35 "support": "COMMUNITY",
36 "category": "Sequencer",
40 # We use globals to cache loaded keymaps, operators, and tools
41 addon_keymaps: List[Type] = []
42 classes_operator: List[Type] = []
43 classes_tool: List[Type] = []
46 def register():
47 global addon_keymaps
48 global classes_operator
49 global classes_tool
51 register_preferences()
52 register_properties()
53 register_handlers()
54 register_ui()
56 # Register operators
57 classes_operator = get_operator_classes()
58 for cls in classes_operator:
59 bpy.utils.register_class(cls)
61 # Register tools
62 classes_tool = get_tool_classes()
63 last_tool = {"builtin.blade"}
64 for index, cls in enumerate(classes_tool):
65 bpy.utils.register_tool(cls, after=last_tool, separator=index == 0)
66 last_tool = {cls.bl_idname}
68 # Register keymaps
69 keymaps = register_shortcuts(classes_operator)
70 addon_keymaps += keymaps
72 print("Registered {} with {} modules".format(bl_info["name"], len(modules)))
75 def unregister():
76 """Unregister"""
77 global addon_keymaps
78 global classes_operator
79 global classes_tool
81 for km, kmi in addon_keymaps:
82 km.keymap_items.remove(kmi)
83 addon_keymaps.clear()
85 for cls in classes_operator:
86 bpy.utils.unregister_class(cls)
88 for cls in classes_tool:
89 bpy.utils.unregister_tool(cls)
91 unregister_ui()
92 unregister_preferences()
93 unregister_properties()
94 unregister_handlers()
96 print("Unregistered {}".format(bl_info["name"]))