1 # SPDX-FileCopyrightText: 2016-2020 by Nathan Lovato, Daniel Oakey, Razvan Radulescu, and contributors
3 # SPDX-License-Identifier: GPL-3.0-or-later
5 from typing
import List
, Tuple
, Type
9 from .addon_preferences
import register_preferences
, unregister_preferences
10 from .addon_properties
import register_properties
, unregister_properties
11 from .handlers
import register_handlers
, unregister_handlers
12 from .operators
import get_operator_classes
13 from .tools
import get_tool_classes
14 from .ui
import register_ui
, unregister_ui
15 from .utils
import addon_auto_imports
16 from .utils
.register_shortcuts
import register_shortcuts
18 # load and reload submodules
19 ##################################
20 modules
= addon_auto_imports
.setup_addon_modules(
21 __path__
, __name__
, ignore_packages
=[".utils", ".audiosync"]
26 "name": "Power Sequencer",
27 "description": "Video editing tools for content creators",
28 "author": "Nathan Lovato",
30 "blender": (2, 93, 3),
31 "location": "Sequencer",
32 "tracker_url": "https://github.com/GDquest/Blender-power-sequencer/issues",
33 "wiki_url": "https://www.gdquest.com/docs/documentation/power-sequencer/",
34 "support": "COMMUNITY",
35 "category": "Sequencer",
39 # We use globals to cache loaded keymaps, operators, and tools
40 addon_keymaps
: List
[Type
] = []
41 classes_operator
: List
[Type
] = []
42 classes_tool
: List
[Type
] = []
47 global classes_operator
50 register_preferences()
56 classes_operator
= get_operator_classes()
57 for cls
in classes_operator
:
58 bpy
.utils
.register_class(cls
)
61 classes_tool
= get_tool_classes()
62 last_tool
= {"builtin.blade"}
63 for index
, cls
in enumerate(classes_tool
):
64 bpy
.utils
.register_tool(cls
, after
=last_tool
, separator
=index
== 0)
65 last_tool
= {cls
.bl_idname
}
68 keymaps
= register_shortcuts(classes_operator
)
69 addon_keymaps
+= keymaps
71 print("Registered {} with {} modules".format(bl_info
["name"], len(modules
)))
77 global classes_operator
80 for km
, kmi
in addon_keymaps
:
81 km
.keymap_items
.remove(kmi
)
84 for cls
in classes_operator
:
85 bpy
.utils
.unregister_class(cls
)
87 for cls
in classes_tool
:
88 bpy
.utils
.unregister_tool(cls
)
91 unregister_preferences()
92 unregister_properties()
95 print("Unregistered {}".format(bl_info
["name"]))