From cd8cdc27135399dd514cd2749529aa3b9908d529 Mon Sep 17 00:00:00 2001 From: Eric Mehl Date: Tue, 5 Dec 2023 14:55:24 -0500 Subject: [PATCH] TransformTool : Add target transform viewer tip --- python/GafferSceneUI/LightPositionToolUI.py | 3 +++ python/GafferSceneUI/RotateToolUI.py | 4 ++++ python/GafferSceneUI/TransformToolUI.py | 20 ++++++++++++++++++++ python/GafferSceneUI/TranslateToolUI.py | 4 ++++ python/GafferUI/_StyleSheet.py | 1 + 5 files changed, 32 insertions(+) diff --git a/python/GafferSceneUI/LightPositionToolUI.py b/python/GafferSceneUI/LightPositionToolUI.py index 76f5588e5c8..96da16416a8 100644 --- a/python/GafferSceneUI/LightPositionToolUI.py +++ b/python/GafferSceneUI/LightPositionToolUI.py @@ -34,6 +34,8 @@ # ########################################################################## +import IECore + import Gaffer import GafferUI import GafferSceneUI @@ -51,4 +53,5 @@ "order", 7, "tool:exclusive", True, + "ui:tool:transformToolTips", IECore.StringVectorData( [ "Hold 'V' to place shadow target", "Hold 'Shift' + 'V' to place shadow pivot", ] ), ) diff --git a/python/GafferSceneUI/RotateToolUI.py b/python/GafferSceneUI/RotateToolUI.py index c96d70fc7e3..71e0d6a9b68 100644 --- a/python/GafferSceneUI/RotateToolUI.py +++ b/python/GafferSceneUI/RotateToolUI.py @@ -34,6 +34,8 @@ # ########################################################################## +import IECore + import Gaffer import GafferSceneUI @@ -51,6 +53,8 @@ "viewer:shortCut", "E", "order", 2, + "ui:tool:transformToolTips", IECore.StringVectorData( [ "Hold 'V' to place orientation target", ] ), + plugs = { "orientation" : [ diff --git a/python/GafferSceneUI/TransformToolUI.py b/python/GafferSceneUI/TransformToolUI.py index 4233a108421..f86f1f5ffd5 100644 --- a/python/GafferSceneUI/TransformToolUI.py +++ b/python/GafferSceneUI/TransformToolUI.py @@ -69,6 +69,10 @@ "toolbarLayout:customWidget:RightSpacer:section", "Bottom", "toolbarLayout:customWidget:RightSpacer:index", -1, + "nodeToolbar:top:type", "GafferUI.StandardNodeToolbar.top", + "toolbarLayout:customWidget:TargetTipWidget:widgetType", "GafferSceneUI.TransformToolUI._TargetTipWidget", + "toolbarLayout:customWidget:TargetTipWidget:section", "Top", + ) class _LeftSpacer( GafferUI.Spacer ) : @@ -101,6 +105,22 @@ def _distance( ancestor, descendant ) : return result +class _TargetTipWidget( GafferUI.Frame ) : + + def __init__( self, tool, **kw ) : + + GafferUI.Frame.__init__( self, borderWidth = 4, **kw ) + + labels = Gaffer.Metadata.value( tool, "ui:tool:transformToolTips" ) + + if labels is not None : + with self : + with GafferUI.ListContainer( orientation = GafferUI.ListContainer.Orientation.Vertical, spacing = 4 ) : + for label in labels: + GafferUI.Label( label ) + else : + self.setVisible( False ) + class _SelectionWidget( GafferUI.Frame ) : def __init__( self, tool, **kw ) : diff --git a/python/GafferSceneUI/TranslateToolUI.py b/python/GafferSceneUI/TranslateToolUI.py index 6a261bea6e9..51822fcbdff 100644 --- a/python/GafferSceneUI/TranslateToolUI.py +++ b/python/GafferSceneUI/TranslateToolUI.py @@ -34,6 +34,8 @@ # ########################################################################## +import IECore + import Gaffer import GafferSceneUI @@ -51,6 +53,8 @@ "viewer:shortCut", "W", "order", 1, + "ui:tool:transformToolTips", IECore.StringVectorData( [ "Hold 'V' to place translation target", ] ), + plugs = { "orientation" : [ diff --git a/python/GafferUI/_StyleSheet.py b/python/GafferUI/_StyleSheet.py index 00c3a97c6a8..3c99c07757d 100644 --- a/python/GafferUI/_StyleSheet.py +++ b/python/GafferUI/_StyleSheet.py @@ -1492,6 +1492,7 @@ def styleColor( key ) : #gafferColorInspector, *[gafferClass="GafferSceneUI.TransformToolUI._SelectionWidget"], *[gafferClass="GafferSceneUI.CropWindowToolUI._StatusWidget"], + *[gafferClass="GafferSceneUI.TransformToolUI._TargetTipWidget"], *[gafferClass="GafferUI.EditScopeUI.EditScopePlugValueWidget"] > QFrame, *[gafferClass="GafferSceneUI.InteractiveRenderUI._ViewRenderControlUI"] > QFrame, *[gafferClass="GafferSceneUI._SceneViewInspector"] > QFrame