Collection Manager: Clear RTO history on destructive actions. Task: T69577
This commit is contained in:
parent
8139c91615
commit
cc1a2f5af8
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue