[Bf-extensions-cvs] [cc1a2f5a] master: Collection Manager: Clear RTO history on destructive actions. Task: T69577
Ryan Inch
noreply at git.blender.org
Wed Apr 15 10:06:12 CEST 2020
Commit: cc1a2f5af8681158905be040099ea14bb814b331
Author: Ryan Inch
Date: Wed Apr 15 04:02:49 2020 -0400
Branches: master
https://developer.blender.org/rBAcc1a2f5af8681158905be040099ea14bb814b331
Collection Manager: Clear RTO history on destructive actions. Task: T69577
===================================================================
M object_collection_manager/__init__.py
M object_collection_manager/operator_utils.py
M object_collection_manager/operators.py
===================================================================
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py
index 4a2c9bf6..ba6b5b19 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,7,7),
+ "version": (2,7,8),
"blender": (2, 80, 0),
"location": "View3D - Object Mode (Shortcut - M)",
"warning": '', # used for warning icon and text in addons panel
diff --git a/object_collection_manager/operator_utils.py b/object_collection_manager/operator_utils.py
index 02644954..f99d870b 100644
--- a/object_collection_manager/operator_utils.py
+++ b/object_collection_manager/operator_utils.py
@@ -161,8 +161,9 @@ def isolate_rto(cls, self, view_layer, rto, *, children=False):
def toggle_children(self, view_layer, rto):
laycol_ptr = layer_collections[self.name]["ptr"]
- # reset rto history
+ # clear rto history
del rto_history[rto][view_layer]
+ rto_history[rto+"_all"].pop(view_layer, None)
# toggle rto state
state = not get_rto(laycol_ptr, rto)
@@ -198,10 +199,11 @@ def activate_all_rtos(view_layer, rto):
for x, item in enumerate(layer_collections.values()):
set_rto(item["ptr"], rto, history[x])
+ # clear rto history
del rto_history[rto+"_all"][view_layer]
-def invert_rtos(rto):
+def invert_rtos(view_layer, rto):
if rto == "exclude":
orig_values = []
@@ -215,8 +217,11 @@ def invert_rtos(rto):
for item in layer_collections.values():
set_rto(item["ptr"], rto, not get_rto(item["ptr"], rto))
+ # clear rto history
+ rto_history[rto].pop(view_layer, None)
-def copy_rtos(rto):
+
+def copy_rtos(view_layer, rto):
if not copy_buffer["RTO"]:
# copy
copy_buffer["RTO"] = rto
@@ -228,12 +233,16 @@ def copy_rtos(rto):
for x, laycol in enumerate(layer_collections.values()):
set_rto(laycol["ptr"], rto, copy_buffer["values"][x])
+ # clear rto history
+ rto_history[rto].pop(view_layer, None)
+ del rto_history[rto+"_all"][view_layer]
+
# clear copy buffer
copy_buffer["RTO"] = ""
copy_buffer["values"].clear()
-def swap_rtos(rto):
+def swap_rtos(view_layer, rto):
if not swap_buffer["A"]["values"]:
# get A
swap_buffer["A"]["RTO"] = rto
@@ -251,6 +260,16 @@ def swap_rtos(rto):
set_rto(laycol["ptr"], swap_buffer["A"]["RTO"], swap_buffer["B"]["values"][x])
set_rto(laycol["ptr"], swap_buffer["B"]["RTO"], swap_buffer["A"]["values"][x])
+
+ # clear rto history
+ swap_a = swap_buffer["A"]["RTO"]
+ swap_b = swap_buffer["B"]["RTO"]
+
+ rto_history[swap_a].pop(view_layer, None)
+ rto_history[swap_a+"_all"].pop(view_layer, None)
+ rto_history[swap_b].pop(view_layer, None)
+ rto_history[swap_b+"_all"].pop(view_layer, None)
+
# clear swap buffer
swap_buffer["A"]["RTO"] = ""
swap_buffer["A"]["values"].clear()
diff --git a/object_collection_manager/operators.py b/object_collection_manager/operators.py
index efb9e40b..11d75171 100644
--- a/object_collection_manager/operators.py
+++ b/object_collection_manager/operators.py
@@ -417,13 +417,13 @@ class CMUnExcludeAllOperator(Operator):
clear_swap("exclude")
elif modifiers == {"ctrl"}:
- copy_rtos("exclude")
+ copy_rtos(view_layer, "exclude")
elif modifiers == {"ctrl", "alt"}:
- swap_rtos("exclude")
+ swap_rtos(view_layer, "exclude")
elif modifiers == {"shift"}:
- invert_rtos("exclude")
+ invert_rtos(view_layer, "exclude")
else:
activate_all_rtos(view_layer, "exclude")
@@ -519,13 +519,13 @@ class CMUnRestrictSelectAllOperator(Operator):
clear_swap("select")
elif modifiers == {"ctrl"}:
- copy_rtos("select")
+ copy_rtos(view_layer, "select")
elif modifiers == {"ctrl", "alt"}:
- swap_rtos("select")
+ swap_rtos(view_layer, "select")
elif modifiers == {"shift"}:
- invert_rtos("select")
+ invert_rtos(view_layer, "select")
else:
activate_all_rtos(view_layer, "select")
@@ -621,13 +621,13 @@ class CMUnHideAllOperator(Operator):
clear_swap("hide")
elif modifiers == {"ctrl"}:
- copy_rtos("hide")
+ copy_rtos(view_layer, "hide")
elif modifiers == {"ctrl", "alt"}:
- swap_rtos("hide")
+ swap_rtos(view_layer, "hide")
elif modifiers == {"shift"}:
- invert_rtos("hide")
+ invert_rtos(view_layer, "hide")
else:
activate_all_rtos(view_layer, "hide")
@@ -723,13 +723,13 @@ class CMUnDisableViewportAllOperator(Operator):
clear_swap("disable")
elif modifiers == {"ctrl"}:
- copy_rtos("disable")
+ copy_rtos(view_layer, "disable")
elif modifiers == {"ctrl", "alt"}:
- swap_rtos("disable")
+ swap_rtos(view_layer, "disable")
elif modifiers == {"shift"}:
- invert_rtos("disable")
+ invert_rtos(view_layer, "disable")
else:
activate_all_rtos(view_layer, "disable")
@@ -826,13 +826,13 @@ class CMUnDisableRenderAllOperator(Operator):
clear_swap("render")
elif modifiers == {"ctrl"}:
- copy_rtos("render")
+ copy_rtos(view_layer, "render")
elif modifiers == {"ctrl", "alt"}:
- swap_rtos("render")
+ swap_rtos(view_layer, "render")
elif modifiers == {"shift"}:
- invert_rtos("render")
+ invert_rtos(view_layer, "render")
else:
activate_all_rtos(view_layer, "render")
More information about the Bf-extensions-cvs
mailing list