Пример #1
0
	def __init__( self, childPlug ) :

		column = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical, spacing=4 )
		GafferUI.PlugValueWidget.__init__( self, column, childPlug )

		with column :

			with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing=4 ) as header :

				collapseButton = GafferUI.Button( image = "collapsibleArrowRight.png", hasFrame=False )
				collapseButton.__clickedConnection = collapseButton.clickedSignal().connect( Gaffer.WeakMethod( self.__collapseButtonClicked ) )

				GafferUI.PlugValueWidget.create( childPlug["active"] )
				self.__label = GafferUI.Label( self.__namePlug().getValue() )

				GafferUI.Spacer( imath.V2i( 1 ), maximumSize = imath.V2i( 100000, 1 ), parenting = { "expand" : True } )

				self.__deleteButton = GafferUI.Button( image = "delete.png", hasFrame=False )
				self.__deleteButton.__clickedConnection = self.__deleteButton.clickedSignal().connect( Gaffer.WeakMethod( self.__deleteButtonClicked ) )
				self.__deleteButton.setVisible( False )

			with GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical, spacing= 4 ) as self.__detailsColumn :

				GafferUI.PlugWidget( self.__namePlug() )
				GafferUI.PlugWidget( self.__fileNamePlug() )
				GafferUI.PlugWidget( childPlug["type"] )
				GafferUI.PlugWidget( childPlug["data"] )
				GafferUI.CompoundDataPlugValueWidget( childPlug["parameters"] )

				GafferUI.Divider( GafferUI.Divider.Orientation.Horizontal )

			self.__detailsColumn.setVisible( False )

			self.__enterConnection = header.enterSignal().connect( Gaffer.WeakMethod( self.__enter ) )
			self.__leaveConnection = header.leaveSignal().connect( Gaffer.WeakMethod( self.__leave ) )
Пример #2
0
    def testSetPlug(self):

        n = Gaffer.Node()
        n["user"]["p1"] = Gaffer.CompoundDataPlug()
        n["user"]["p2"] = Gaffer.CompoundDataPlug()

        m1 = n["user"]["p1"].addMember("test", 10)
        m2 = n["user"]["p2"].addMember("test", 10)

        w = GafferUI.CompoundDataPlugValueWidget(n["user"]["p1"])
        w1 = w.childPlugValueWidget(m1, lazy=False)
        self.assertTrue(w1.getPlug().isSame(m1))

        w.setPlug(n["user"]["p2"])
        w2 = w.childPlugValueWidget(m2, lazy=False)
        self.assertTrue(w2.getPlug().isSame(m2))
    def testSetPlug(self):

        n = Gaffer.Node()
        n["user"]["p1"] = Gaffer.CompoundDataPlug()
        n["user"]["p2"] = Gaffer.CompoundDataPlug()

        m1 = Gaffer.NameValuePlug("test", 10)
        n["user"]["p1"].addChild(m1)
        m2 = Gaffer.NameValuePlug("test", 10)
        n["user"]["p2"].addChild(m2)

        w = GafferUI.CompoundDataPlugValueWidget(n["user"]["p1"])
        w1 = w.childPlugValueWidget(m1)
        self.assertTrue(w1.getPlug().isSame(m1))

        w.setPlug(n["user"]["p2"])
        w2 = w.childPlugValueWidget(m2)
        self.assertTrue(w2.getPlug().isSame(m2))
Пример #4
0
    def __collapseButtonClicked(self, button):

        visible = not self.__detailsColumn.getVisible()

        if visible and not len(self.__detailsColumn):
            # Build details section the first time it is shown,
            # to avoid excessive overhead in the initial UI build.
            with self.__detailsColumn:
                GafferUI.PlugWidget(self.__namePlug())
                GafferUI.PlugWidget(self.__fileNamePlug())
                GafferUI.PlugWidget(self.getPlug()["type"])
                GafferUI.PlugWidget(self.getPlug()["data"])
                GafferUI.CompoundDataPlugValueWidget(
                    self.getPlug()["parameters"])
                GafferUI.Divider(GafferUI.Divider.Orientation.Horizontal)

        self.__detailsColumn.setVisible(visible)
        button.setImage("collapsibleArrowDown.png"
                        if visible else "collapsibleArrowRight.png")
Пример #5
0
	def __init__( self, childPlug ) :
	
		column = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical, spacing=4 )
		GafferUI.PlugValueWidget.__init__( self, column, childPlug )
		
		row = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing=4 )
		column.append( row )

		collapseButton = GafferUI.Button( image = "collapsibleArrowRight.png", hasFrame=False )
		collapseButton.__clickedConnection = collapseButton.clickedSignal().connect( Gaffer.WeakMethod( self.__collapseButtonClicked ) )
		row.append( collapseButton )
		
		row.append( GafferUI.PlugValueWidget.create( childPlug["active"] ) )
		row.append( GafferUI.PlugValueWidget.create( childPlug["name"] ) )
		row.append( GafferUI.PlugValueWidget.create( childPlug["type"] ) )
		row.append( GafferUI.PlugValueWidget.create( childPlug["data"] ) )
		
		parameterList = GafferUI.CompoundDataPlugValueWidget( childPlug["parameters"], collapsed=None )
		parameterList.setVisible( False )
		column.append( parameterList )
Пример #6
0
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
#  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
##########################################################################

import Gaffer
import GafferUI

GafferUI.PlugValueWidget.registerCreator(Gaffer.ScriptNode.staticTypeId(),
                                         "unsavedChanges", None)

GafferUI.PlugValueWidget.registerCreator(
    Gaffer.ScriptNode.staticTypeId(), "frameRange",
    GafferUI.CompoundNumericPlugValueWidget)

GafferUI.PlugValueWidget.registerCreator(
    Gaffer.ScriptNode.staticTypeId(),
    "variables",
    lambda plug: GafferUI.CompoundDataPlugValueWidget(plug, collapsed=None),
)

Gaffer.Metadata.registerPlugValue(
    Gaffer.ScriptNode.staticTypeId(),
    "variables",
    "nodeUI:section",
    "Variables",
)