Collection Manager: Expander fix. Task T69577
Fix expanded and expand history not getting updated on collection removal.
This commit is contained in:
parent
926d8beb55
commit
583a81397e
|
@ -22,12 +22,7 @@ bl_info = {
|
|||
"name": "Collection Manager",
|
||||
"description": "Manage collections and their objects",
|
||||
"author": "Ryan Inch",
|
||||
<<<<<<< HEAD
|
||||
"version": (2,7,11),
|
||||
=======
|
||||
"version": (2,7,10),
|
||||
>>>>>>> Collection Manager: Expander fixes. Task: T69577
|
||||
"blender": (2, 80, 0),
|
||||
"location": "View3D - Object Mode (Shortcut - M)",
|
||||
"warning": '', # used for warning icon and text in addons panel
|
||||
"doc_url": "{BLENDER_MANUAL_URL}/addons/interface/collection_manager.html",
|
||||
|
|
|
@ -851,6 +851,7 @@ class CMRemoveCollectionOperator(Operator):
|
|||
|
||||
def execute(self, context):
|
||||
global rto_history
|
||||
global expand_history
|
||||
global qcd_slots
|
||||
|
||||
cm = context.scene.collection_manager
|
||||
|
@ -872,8 +873,16 @@ class CMRemoveCollectionOperator(Operator):
|
|||
parent_collection.children.link(subcollection)
|
||||
|
||||
|
||||
# remove collection and update tree view
|
||||
# remove collection, update expanded, and update tree view
|
||||
bpy.data.collections.remove(collection)
|
||||
expanded.discard(self.collection_name)
|
||||
|
||||
if expand_history["target"] == self.collection_name:
|
||||
expand_history["target"] = ""
|
||||
|
||||
if self.collection_name in expand_history["history"]:
|
||||
expand_history["history"].remove(self.collection_name)
|
||||
|
||||
update_property_group(context)
|
||||
|
||||
|
||||
|
|
|
@ -331,7 +331,7 @@ class CollectionManager(Operator):
|
|||
except KeyError: # Master Collection is special and not part of regular collections
|
||||
cm.cm_list_index = -1
|
||||
|
||||
# check if history/buffer state still correct
|
||||
# check if expanded & history/buffer state still correct
|
||||
if collection_state:
|
||||
new_state = generate_state()
|
||||
|
||||
|
@ -344,6 +344,16 @@ class CollectionManager(Operator):
|
|||
swap_buffer["B"]["RTO"] = ""
|
||||
swap_buffer["B"]["values"].clear()
|
||||
|
||||
for name in list(expanded):
|
||||
laycol = layer_collections.get(name)
|
||||
if not laycol or not laycol["has_children"]:
|
||||
expanded.remove(name)
|
||||
|
||||
for name in list(expand_history["history"]):
|
||||
laycol = layer_collections.get(name)
|
||||
if not laycol or not laycol["has_children"]:
|
||||
expand_history["history"].remove(name)
|
||||
|
||||
for rto, history in rto_history.items():
|
||||
if view_layer.name in history:
|
||||
del history[view_layer.name]
|
||||
|
|
Loading…
Reference in New Issue