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>2021-03-24 11:40:37 +0300
committerRyan Inch <mythologylover75@gmail.com>2021-03-24 11:40:37 +0300
commitebe76f3a7ba96b3881567def29b7e2527e018e9a (patch)
treee460c10ab3fe9c766e309c02ccf6ee95f35f4af4 /object_collection_manager
parentbcd08a9506d33bdd7358201031b04d041ef22d94 (diff)
Collection Manager: Improve indicators. Task: T69577
Change selection indication in CM popup to more easily identify selection state and whether objects in collection can be selected. Change icons from circles to diamonds to differentiate from QCD icons, as what they indicate is slightly different.
Diffstat (limited to 'object_collection_manager')
-rw-r--r--object_collection_manager/__init__.py2
-rw-r--r--object_collection_manager/ui.py88
2 files changed, 71 insertions, 19 deletions
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py
index bbfdd0b1..d8e50022 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, 21, 0),
+ "version": (2, 21, 1),
"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/ui.py b/object_collection_manager/ui.py
index a81c18ae..09899581 100644
--- a/object_collection_manager/ui.py
+++ b/object_collection_manager/ui.py
@@ -173,30 +173,52 @@ class CollectionManager(Operator):
# set selection
setsel = name_row.row(align=True)
icon = 'DOT'
+ some_selected = False
- if any((laycol["ptr"].exclude,
- collection.hide_select,
- collection.hide_viewport,
- laycol["ptr"].hide_viewport,
- not collection.objects,)):
- # objects cannot be selected
+ if not collection.objects:
+ icon = 'BLANK1'
setsel.active = False
else:
+ all_selected = None
+ all_unreachable = None
+
for obj in collection.objects:
+ if not obj.visible_get() or obj.hide_select:
+ if all_unreachable != False:
+ all_unreachable = True
+
+ else:
+ all_unreachable = False
+
if obj.select_get() == False:
# some objects remain unselected
- icon = 'LAYER_USED'
- break
+ icon = 'KEYFRAME'
+ all_selected = False
- if icon != 'LAYER_USED':
+ else:
+ some_selected = True
+
+ if all_selected == False:
+ break
+
+ all_selected = True
+
+
+ if all_selected:
# all objects are selected
- icon = 'LAYER_ACTIVE'
+ icon = 'KEYFRAME_HLT'
+
+ if all_unreachable:
+ if collection.objects:
+ icon = 'DOT'
+
+ setsel.active = False
prop = setsel.operator("view3d.select_collection_objects",
text="",
icon=icon,
- depress=bool(icon == 'LAYER_ACTIVE')
+ depress=some_selected,
)
prop.is_master_collection = True
prop.collection_name = 'Master Collection'
@@ -607,30 +629,60 @@ class CM_UL_items(UIList):
# set selection
setsel = c_name.row(align=True)
icon = 'DOT'
+ some_selected = False
+
+ if not collection.objects:
+ icon = 'BLANK1'
+ setsel.active = False
if any((laycol["ptr"].exclude,
collection.hide_select,
collection.hide_viewport,
- laycol["ptr"].hide_viewport,
- not collection.objects,)):
+ laycol["ptr"].hide_viewport,)):
# objects cannot be selected
setsel.active = False
else:
+ all_selected = None
+ all_unreachable = None
+
for obj in collection.objects:
+ if not obj.visible_get() or obj.hide_select:
+ if all_unreachable != False:
+ all_unreachable = True
+
+ else:
+ all_unreachable = False
+
if obj.select_get() == False:
# some objects remain unselected
- icon = 'LAYER_USED'
- break
+ icon = 'KEYFRAME'
+ all_selected = False
+
+ else:
+ some_selected = True
+
+ if all_selected == False:
+ break
- if icon != 'LAYER_USED':
+ all_selected = True
+
+
+ if all_selected:
# all objects are selected
- icon = 'LAYER_ACTIVE'
+ icon = 'KEYFRAME_HLT'
+
+ if all_unreachable:
+ if collection.objects:
+ icon = 'DOT'
+
+ setsel.active = False
+
prop = setsel.operator("view3d.select_collection_objects",
text="",
icon=icon,
- depress=bool(icon == 'LAYER_ACTIVE')
+ depress=some_selected
)
prop.is_master_collection = False
prop.collection_name = item.name