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-18 09:43:46 +0300
committerRyan Inch <mythologylover75@gmail.com>2020-04-18 09:43:46 +0300
commiteedd49c55e70b0a3e118400e1c7ad2e052de975a (patch)
tree2363a58cce036bfa53d0145adcdb5bf9503b197a /object_collection_manager
parent8378eccbc9e8886a10e6906d57a340a49b4a4ea4 (diff)
Collection Manager: Expander fix. Task T69577
Fix expanded and expand history not getting updated on collection removal.
Diffstat (limited to 'object_collection_manager')
-rw-r--r--object_collection_manager/__init__.py2
-rw-r--r--object_collection_manager/operators.py11
-rw-r--r--object_collection_manager/ui.py12
3 files changed, 22 insertions, 3 deletions
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py
index d750342f..943e5b0f 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,10),
+ "version": (2,7,11),
"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/operators.py b/object_collection_manager/operators.py
index b1d4d4ca..c1259acd 100644
--- a/object_collection_manager/operators.py
+++ b/object_collection_manager/operators.py
@@ -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)
diff --git a/object_collection_manager/ui.py b/object_collection_manager/ui.py
index d4a4f49e..61c44a5b 100644
--- a/object_collection_manager/ui.py
+++ b/object_collection_manager/ui.py
@@ -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]