Exemplo n.º 1
0
	def __init__( self, plug, **kw ) :

		grid = GafferUI.GridContainer( spacing = 4 )
		GafferUI.PlugValueWidget.__init__( self, grid, plug, **kw )

		self.__menuButton = GafferUI.MenuButton( menu = GafferUI.Menu( Gaffer.WeakMethod( self.__menuDefinition ) ) )
		grid[0:2,0] = self.__menuButton

		self.__minLabel = GafferUI.Label( "Min" )
		grid.addChild( self.__minLabel, index = ( 0, 1 ), alignment = ( GafferUI.HorizontalAlignment.Right, GafferUI.VerticalAlignment.Center ) )

		self.__minWidget = GafferUI.CompoundNumericPlugValueWidget( plug["displayWindow"]["min"] )
		grid[1,1] = self.__minWidget

		self.__maxLabel = GafferUI.Label( "Max" )
		grid.addChild( self.__maxLabel, index = ( 0, 2 ), alignment = ( GafferUI.HorizontalAlignment.Right, GafferUI.VerticalAlignment.Center ) )

		self.__maxWidget = GafferUI.CompoundNumericPlugValueWidget( plug["displayWindow"]["max"] )
		grid[1,2] = self.__maxWidget

		self.__pixelAspectLabel = GafferUI.Label( "Pixel Aspect" )
		grid.addChild( self.__pixelAspectLabel, index = ( 0, 3 ), alignment = ( GafferUI.HorizontalAlignment.Right, GafferUI.VerticalAlignment.Center ) )

		self.__pixelAspectWidget = GafferUI.NumericPlugValueWidget( plug["pixelAspect"] )
		grid[1,3] = self.__pixelAspectWidget

		# If the plug hasn't got an input, the PlugValueWidget base class assumes we're not
		# sensitive to contex changes and omits calls to _updateFromPlug(). But the default
		# format mechanism uses the context, so we must arrange to do updates ourselves when
		# necessary.
		self.__contextChangedConnection = self.getContext().changedSignal().connect( Gaffer.WeakMethod( self.__contextChanged ) )

		self._addPopupMenu( self.__menuButton )
		self._updateFromPlug()
Exemplo n.º 2
0
    def __init__(self, parameterHandler, **kw):

        plugValueWidget = GafferUI.CompoundNumericPlugValueWidget(
            parameterHandler.plug())

        GafferUI.ParameterValueWidget.__init__(self, plugValueWidget,
                                               parameterHandler, **kw)
Exemplo n.º 3
0
	def testVisibleDimensionsMetadata( self ) :

		n = Gaffer.Node()
		n["v"] = Gaffer.V3fPlug()
		Gaffer.Metadata.registerValue( n["v"], "ui:visibleDimensions", 2 )

		w = GafferUI.CompoundNumericPlugValueWidget( n["v"] )

		self.assertTrue( w.childPlugValueWidget( n["v"][0] ).getVisible() )
		self.assertTrue( w.childPlugValueWidget( n["v"][1] ).getVisible() )
		self.assertFalse( w.childPlugValueWidget( n["v"][2] ).getVisible() )
Exemplo n.º 4
0
	def testChildPlugValueWidget( self ) :

		n = Gaffer.Node()
		n["v1"] = Gaffer.V3fPlug()
		n["v2"] = Gaffer.V3fPlug()

		w = GafferUI.CompoundNumericPlugValueWidget( n["v1"] )

		for i in range( 0, 3 ) :
			self.assertTrue( w.childPlugValueWidget( n["v1"][i] ).getPlug().isSame( n["v1"][i] ) )
			self.assertTrue( w.childPlugValueWidget( n["v2"][i] ) is None )
Exemplo n.º 5
0
	def testChildPlugValueWidgetForMultiplePlugs( self ) :

		n = Gaffer.Node()
		n["user"]["p1"] = Gaffer.V3iPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )
		n["user"]["p2"] = Gaffer.V3iPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )

		w = GafferUI.CompoundNumericPlugValueWidget( n["user"].children() )

		for plug in n["user"].children() :
			for childPlug in plug :
				self.assertIn( childPlug, w.childPlugValueWidget( childPlug ).getPlugs() )
Exemplo n.º 6
0
	def testHighlighting( self ) :

		n = Gaffer.Node()
		n["user"]["p1"] = Gaffer.V3iPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )

		w = GafferUI.CompoundNumericPlugValueWidget( n["user"]["p1"] )

		w.setHighlighted( True )
		for childPlug in w.getPlug() :
			self.assertTrue( w.childPlugValueWidget( childPlug ).getHighlighted() )

		w.setHighlighted( False )
		for childPlug in w.getPlug() :
			self.assertFalse( w.childPlugValueWidget( childPlug ).getHighlighted() )
Exemplo n.º 7
0
	def test( self ) :

		n = Gaffer.Node()
		n["v1"]= Gaffer.V3fPlug()
		n["v2"]= Gaffer.V3fPlug()

		w = GafferUI.CompoundNumericPlugValueWidget( n["v1"] )
		self.assertTrue( w.getPlug().isSame( n["v1"] ) )
		self.assertTrue( w._row()[0].getPlug().isSame( n["v1"][0] ) )
		self.assertTrue( w._row()[1].getPlug().isSame( n["v1"][1] ) )
		self.assertTrue( w._row()[2].getPlug().isSame( n["v1"][2] ) )

		w.setPlug( n["v2"] )
		self.assertTrue( w.getPlug().isSame( n["v2"] ) )
		self.assertTrue( w._row()[0].getPlug().isSame( n["v2"][0] ) )
		self.assertTrue( w._row()[1].getPlug().isSame( n["v2"][1] ) )
		self.assertTrue( w._row()[2].getPlug().isSame( n["v2"][2] ) )
Exemplo n.º 8
0
	def testChangePlugDimensions( self ) :

		n = Gaffer.Node()
		n["user"]["p1"] = Gaffer.V2iPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )
		n["user"]["p2"] = Gaffer.V3iPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )

		w = GafferUI.CompoundNumericPlugValueWidget( n["user"]["p1"] )
		self.assertEqual( len( w._row() ), 2 )
		for childPlug in Gaffer.Plug.Range( w.getPlug() ) :
			self.assertEqual( w.childPlugValueWidget( childPlug ).getPlug(), childPlug )

		w.setPlug( n["user"]["p2"] )
		self.assertEqual( len( w._row() ), 3 )
		for childPlug in Gaffer.Plug.Range( w.getPlug() ) :
			self.assertEqual( w.childPlugValueWidget( childPlug ).getPlug(), childPlug )

		w.setPlug( n["user"]["p1"] )
		self.assertEqual( len( w._row() ), 2 )
		for childPlug in Gaffer.Plug.Range( w.getPlug() ) :
			self.assertEqual( w.childPlugValueWidget( childPlug ).getPlug(), childPlug )
Exemplo n.º 9
0
	def testSetGetPlugs( self ) :

		n = Gaffer.Node()
		n["user"]["v1"] = Gaffer.V3fPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )
		n["user"]["v2"] = Gaffer.V3fPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )

		w = GafferUI.CompoundNumericPlugValueWidget( n["user"]["v1"] )
		self.assertEqual( w.getPlug(), n["user"]["v1"] )
		self.assertEqual( w.getPlugs(), { n["user"]["v1"] } )

		w.setPlug( n["user"]["v2"] )
		self.assertEqual( w.getPlug(), n["user"]["v2"] )
		self.assertEqual( w.getPlugs(), { n["user"]["v2"] } )

		w.setPlugs( { n["user"]["v1"] } )
		self.assertEqual( w.getPlug(), n["user"]["v1"] )
		self.assertEqual( w.getPlugs(), { n["user"]["v1"] } )

		for childPlug in n["user"]["v1"] :
			self.assertEqual(
				w.childPlugValueWidget( childPlug ).getPlug(),
				childPlug,
			)
Exemplo n.º 10
0
def __numberCreator(plug, annotations):

    if len(plug):
        return GafferUI.CompoundNumericPlugValueWidget(plug)
    else:
        return GafferUI.NumericPlugValueWidget(plug)