[Bf-extensions-cvs] [ebe76f3a] master: Collection Manager: Improve indicators. Task: T69577
Ryan Inch
noreply at git.blender.org
Wed Mar 24 09:46:11 CET 2021
Commit: ebe76f3a7ba96b3881567def29b7e2527e018e9a
Author: Ryan Inch
Date: Wed Mar 24 04:40:37 2021 -0400
Branches: master
https://developer.blender.org/rBAebe76f3a7ba96b3881567def29b7e2527e018e9a
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.
===================================================================
M object_collection_manager/__init__.py
M object_collection_manager/ui.py
===================================================================
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
More information about the Bf-extensions-cvs
mailing list