Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Inch <mythologylover75@gmail.com>2020-10-25 08:14:53 +0300
committerRyan Inch <mythologylover75@gmail.com>2020-10-25 08:14:53 +0300
commit7cc2e4b14f8855659b611d3da1d0dc702618d43f (patch)
treea13096731e21b3fe17ca327e8b4be3b1d35f53f0 /object_collection_manager/__init__.py
parent8488f40e0b1f27acba8185e44c1b8566c388516c (diff)
Collection Manager: Add disable override. Task: T69577.
Add an override checkbox to the preferences to override the object hiding hotkeys with object disabling hotkeys and add menu items to the Object->Show/Hide menu for the disable object operators. Disabling objects is needed to preserve their visibility state when excluding and unexcluding collections. This makes it easier to disable objects, and disabling objects prevents QCD slot switching from resetting the objects visibility state.
Diffstat (limited to 'object_collection_manager/__init__.py')
-rw-r--r--object_collection_manager/__init__.py138
1 files changed, 5 insertions, 133 deletions
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py
index bc62e947..0e093bc5 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, 1),
+ "version": (2, 18, 0),
"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__":