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 ) )
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))
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")
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 )
# 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", )