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-04-15 11:02:49 +0300
committerRyan Inch <mythologylover75@gmail.com>2020-04-15 11:02:49 +0300
commitcc1a2f5af8681158905be040099ea14bb814b331 (patch)
treed524dfaca20c916bd279ceb5fd6bbb6fe596d992 /object_collection_manager/operator_utils.py
parent8139c91615608ce627335e3efae79d1074ba7191 (diff)
Collection Manager: Clear RTO history on destructive actions. Task: T69577
Diffstat (limited to 'object_collection_manager/operator_utils.py')
-rw-r--r--object_collection_manager/operator_utils.py27
1 files changed, 23 insertions, 4 deletions
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()