diff options
Diffstat (limited to 'object_collection_manager/operators.py')
-rw-r--r-- | object_collection_manager/operators.py | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/object_collection_manager/operators.py b/object_collection_manager/operators.py index 94b7518d..45dc4df5 100644 --- a/object_collection_manager/operators.py +++ b/object_collection_manager/operators.py @@ -59,6 +59,8 @@ from .operator_utils import ( remove_collection, select_collection_objects, set_exclude_state, + isolate_sel_objs_collections, + disable_sel_objs_collections, ) from . import ui @@ -441,6 +443,8 @@ class CMUnExcludeAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -472,6 +476,20 @@ class CMUnExcludeAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "exclude") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "exclude", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "exclude", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "exclude") @@ -550,6 +568,8 @@ class CMUnRestrictSelectAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -579,6 +599,20 @@ class CMUnRestrictSelectAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "select") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "select", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "select", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "select") @@ -649,6 +683,8 @@ class CMUnHideAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -678,6 +714,20 @@ class CMUnHideAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "hide") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "hide", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "hide", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "hide") @@ -748,6 +798,8 @@ class CMUnDisableViewportAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -777,6 +829,20 @@ class CMUnDisableViewportAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "disable") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "disable", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "disable", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "disable") @@ -848,6 +914,8 @@ class CMUnDisableRenderAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -877,6 +945,20 @@ class CMUnDisableRenderAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "render") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "render", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "render", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "render") @@ -947,6 +1029,8 @@ class CMUnHoldoutAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -976,6 +1060,20 @@ class CMUnHoldoutAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "holdout") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "holdout", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "holdout", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "holdout") @@ -1047,6 +1145,8 @@ class CMUnIndirectOnlyAllOperator(Operator): bl_description = ( " * LMB - Enable all/Restore.\n" " * Shift+LMB - Invert.\n" + " * Shift+Ctrl+LMB - Isolate collections w/ selected objects.\n" + " * Shift+Alt+LMB - Disable collections w/ selected objects.\n" " * Ctrl+LMB - Copy/Paste RTOs.\n" " * Ctrl+Alt+LMB - Swap RTOs.\n" " * Alt+LMB - Discard history" @@ -1076,6 +1176,20 @@ class CMUnIndirectOnlyAllOperator(Operator): elif modifiers == {"shift"}: invert_rtos(view_layer, "indirect") + elif modifiers == {"shift", "ctrl"}: + error = isolate_sel_objs_collections(view_layer, "indirect", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + + elif modifiers == {"shift", "alt"}: + error = disable_sel_objs_collections(view_layer, "indirect", "CM") + + if error: + self.report({"WARNING"}, error) + return {'CANCELLED'} + else: activate_all_rtos(view_layer, "indirect") |