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
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"]
27 "name": "Power Sequencer",
28 "description": "Video editing tools for content creators",
29 "author": "Nathan Lovato",
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
] = []
48 global classes_operator
51 register_preferences()
57 classes_operator
= get_operator_classes()
58 for cls
in classes_operator
:
59 bpy
.utils
.register_class(cls
)
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
}
69 keymaps
= register_shortcuts(classes_operator
)
70 addon_keymaps
+= keymaps
72 print("Registered {} with {} modules".format(bl_info
["name"], len(modules
)))
78 global classes_operator
81 for km
, kmi
in addon_keymaps
:
82 km
.keymap_items
.remove(kmi
)
85 for cls
in classes_operator
:
86 bpy
.utils
.unregister_class(cls
)
88 for cls
in classes_tool
:
89 bpy
.utils
.unregister_tool(cls
)
92 unregister_preferences()
93 unregister_properties()
96 print("Unregistered {}".format(bl_info
["name"]))