diff options
Diffstat (limited to 'object_collection_manager/__init__.py')
-rw-r--r-- | object_collection_manager/__init__.py | 138 |
1 files changed, 5 insertions, 133 deletions
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py index 9ccc3d45..52417fab 100644 --- a/object_collection_manager/__init__.py +++ b/object_collection_manager/__init__.py @@ -22,7 +22,7 @@ bl_info = { "name": "Collection Manager", "description": "Manage collections and their objects", "author": "Ryan Inch", - "version": (2, 17, 2), + "version": (2, 18, 2), "blender": (2, 80, 0), "location": "View3D - Object Mode (Shortcut - M)", "warning": '', # used for warning icon and text in addons panel @@ -35,6 +35,7 @@ bl_info = { if "bpy" in locals(): import importlib + importlib.reload(cm_init) importlib.reload(internals) importlib.reload(operator_utils) importlib.reload(operators) @@ -45,6 +46,7 @@ if "bpy" in locals(): importlib.reload(preferences) else: + from . import cm_init from . import internals from . import operator_utils from . import operators @@ -55,124 +57,9 @@ else: from . import preferences import bpy -from bpy.app.handlers import persistent -from bpy.types import PropertyGroup -from bpy.props import ( - CollectionProperty, - EnumProperty, - IntProperty, - BoolProperty, - StringProperty, - PointerProperty, - ) - - -class CollectionManagerProperties(PropertyGroup): - cm_list_collection: CollectionProperty(type=internals.CMListCollection) - cm_list_index: IntProperty() - - show_exclude: BoolProperty(default=True, name="[EC] Exclude from View Layer") - show_selectable: BoolProperty(default=True, name="[SS] Disable Selection") - show_hide_viewport: BoolProperty(default=True, name="[VV] Hide in Viewport") - show_disable_viewport: BoolProperty(default=False, name="[DV] Disable in Viewports") - show_render: BoolProperty(default=False, name="[RR] Disable in Renders") - show_holdout: BoolProperty(default=False, name="[HH] Holdout") - show_indirect_only: BoolProperty(default=False, name="[IO] Indirect Only") - - align_local_ops: BoolProperty(default=False, name="Align Local Options", - description="Align local options in a column to the right") - - in_phantom_mode: BoolProperty(default=False) - - update_header: CollectionProperty(type=internals.CMListCollection) - - ui_separator: StringProperty(name="", default="") - - qcd_slots_blend_data: StringProperty() - - -addon_keymaps = [] - -classes = ( - internals.CMListCollection, - internals.CMSendReport, - operators.SetActiveCollection, - operators.ExpandAllOperator, - operators.ExpandSublevelOperator, - operators.CMExcludeOperator, - operators.CMUnExcludeAllOperator, - operators.CMRestrictSelectOperator, - operators.CMUnRestrictSelectAllOperator, - operators.CMHideOperator, - operators.CMUnHideAllOperator, - operators.CMDisableViewportOperator, - operators.CMUnDisableViewportAllOperator, - operators.CMDisableRenderOperator, - operators.CMUnDisableRenderAllOperator, - operators.CMHoldoutOperator, - operators.CMUnHoldoutAllOperator, - operators.CMIndirectOnlyOperator, - operators.CMUnIndirectOnlyAllOperator, - operators.CMNewCollectionOperator, - operators.CMRemoveCollectionOperator, - operators.CMRemoveEmptyCollectionsOperator, - operators.CMSelectCollectionObjectsOperator, - operators.CMSetCollectionOperator, - operators.CMPhantomModeOperator, - operators.CMApplyPhantomModeOperator, - preferences.CMPreferences, - ui.CM_UL_items, - ui.CollectionManager, - ui.CMDisplayOptionsPanel, - ui.SpecialsMenu, - CollectionManagerProperties, - ) - -@persistent -def depsgraph_update_post_handler(dummy): - if internals.move_triggered: - internals.move_triggered = False - return - - internals.move_selection.clear() - internals.move_active = None - -@persistent -def undo_redo_post_handler(dummy): - internals.move_selection.clear() - internals.move_active = None - - -def menu_addition(self, context): - layout = self.layout - - layout.operator('view3d.collection_manager') - - if bpy.context.preferences.addons[__package__].preferences.enable_qcd: - layout.operator('view3d.qcd_move_widget') - - layout.separator() - def register(): - for cls in classes: - bpy.utils.register_class(cls) - - bpy.types.Scene.collection_manager = PointerProperty(type=CollectionManagerProperties) - - # create the global menu hotkey - wm = bpy.context.window_manager - if wm.keyconfigs.addon: # not present when started with --background - km = wm.keyconfigs.addon.keymaps.new(name='Object Mode') - kmi = km.keymap_items.new('view3d.collection_manager', 'M', 'PRESS') - addon_keymaps.append((km, kmi)) - - # Add Collection Manager & QCD Move Widget to the Object->Collections menu - bpy.types.VIEW3D_MT_object_collection.prepend(menu_addition) - - bpy.app.handlers.depsgraph_update_post.append(depsgraph_update_post_handler) - bpy.app.handlers.undo_post.append(undo_redo_post_handler) - bpy.app.handlers.redo_post.append(undo_redo_post_handler) + cm_init.register_cm() if bpy.context.preferences.addons[__package__].preferences.enable_qcd: qcd_init.register_qcd() @@ -181,22 +68,7 @@ def unregister(): if bpy.context.preferences.addons[__package__].preferences.enable_qcd: qcd_init.unregister_qcd() - for cls in classes: - bpy.utils.unregister_class(cls) - - # Remove Collection Manager & QCD Move Widget from the Object->Collections menu - bpy.types.VIEW3D_MT_object_collection.remove(menu_addition) - - bpy.app.handlers.depsgraph_update_post.remove(depsgraph_update_post_handler) - bpy.app.handlers.undo_post.remove(undo_redo_post_handler) - bpy.app.handlers.redo_post.remove(undo_redo_post_handler) - - del bpy.types.Scene.collection_manager - - # remove keymaps when add-on is deactivated - for km, kmi in addon_keymaps: - km.keymap_items.remove(kmi) - addon_keymaps.clear() + cm_init.unregister_cm() if __name__ == "__main__": |