From 990bf2f07943e426c7f59323448e8eb31d3dda81 Mon Sep 17 00:00:00 2001 From: Eric Mehl Date: Mon, 24 Jun 2024 17:00:37 -0400 Subject: [PATCH] EditScopeUI : Add summary for `SetMembershipEdits` --- Changes.md | 1 + python/GafferSceneUI/EditScopeUI.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/Changes.md b/Changes.md index 067ffdd7a0..85be510a29 100644 --- a/Changes.md +++ b/Changes.md @@ -16,6 +16,7 @@ Improvements - The following parameters can now be made visible in the GraphEditor : - The `flake_layers` parameter of the `car_paint` shader. - The `data_seed`, `proc_seed`, `obj_seed`, and `face_seed` parameters of the `color_jitter` shader. +- EditScope : Added summaries of set membership edits in the NodeEditor. Fixes ----- diff --git a/python/GafferSceneUI/EditScopeUI.py b/python/GafferSceneUI/EditScopeUI.py index 4341438432..1a0cc484a1 100644 --- a/python/GafferSceneUI/EditScopeUI.py +++ b/python/GafferSceneUI/EditScopeUI.py @@ -303,3 +303,31 @@ def _summary( processor, linkCreator ) : GafferUI.EditScopeUI.ProcessorWidget.registerProcessorWidget( "RenderPassOptionEdits", __RenderPassOptionEditsWidget ) + +class __SetMembershipEditsWidget( GafferUI.EditScopeUI.SimpleProcessorWidget ) : + + @staticmethod + def _summary( processor, linkCreator ) : + + enabledSetCount = 0 + disabledSetCount = 0 + for r in processor["edits"] : + if r.getName() == "default" : + continue + if r["enabled"].getValue() : + enabledSetCount += 1 + else : + disabledSetCount += 1 + + summaries = [] + if enabledSetCount > 0 : + summaries.append( "edits to {} set{}".format( enabledSetCount, "s" if enabledSetCount > 1 else "" ) ) + if disabledSetCount > 0 : + summaries.append( "disabled edits to {} set{}".format( disabledSetCount, "s" if disabledSetCount > 1 else "" ) ) + + if not summaries : + return None + summaries[0] = summaries[0][0].upper() + summaries[0][1:] + return " and ".join( summaries ) + +GafferUI.EditScopeUI.ProcessorWidget.registerProcessorWidget( "SetMembershipEdits", __SetMembershipEditsWidget ) \ No newline at end of file