UI Translations: fix add-on translation export
[blender-addons.git] / power_sequencer / __init__.py
blob0e1f9a09296f1d4c5d9c93475f275ea600362e28
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
7 import bpy
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"]
25 bl_info = {
26 "name": "Power Sequencer",
27 "description": "Video editing tools for content creators",
28 "author": "Nathan Lovato",
29 "version": (2, 0, 2),
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] = []
45 def register():
46 global addon_keymaps
47 global classes_operator
48 global classes_tool
50 register_preferences()
51 register_properties()
52 register_handlers()
53 register_ui()
55 # Register operators
56 classes_operator = get_operator_classes()
57 for cls in classes_operator:
58 bpy.utils.register_class(cls)
60 # Register tools
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}
67 # Register keymaps
68 keymaps = register_shortcuts(classes_operator)
69 addon_keymaps += keymaps
71 print("Registered {} with {} modules".format(bl_info["name"], len(modules)))
74 def unregister():
75 """Unregister"""
76 global addon_keymaps
77 global classes_operator
78 global classes_tool
80 for km, kmi in addon_keymaps:
81 km.keymap_items.remove(kmi)
82 addon_keymaps.clear()
84 for cls in classes_operator:
85 bpy.utils.unregister_class(cls)
87 for cls in classes_tool:
88 bpy.utils.unregister_tool(cls)
90 unregister_ui()
91 unregister_preferences()
92 unregister_properties()
93 unregister_handlers()
95 print("Unregistered {}".format(bl_info["name"]))