Skip to content

Commit

Permalink
EditScopeUI : Display icon representing EditScope colour
Browse files Browse the repository at this point in the history
  • Loading branch information
murraystevenson committed May 30, 2024
1 parent 797e4f7 commit aa8c68b
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
5 changes: 5 additions & 0 deletions Changes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
1.4.x.x (relative to 1.4.5.0)
=======

Improvements
------------

- EditScopePlugValueWidget : Added icon representing the Edit Scope node colour.

API
---

Expand Down
33 changes: 31 additions & 2 deletions python/GafferUI/EditScopeUI.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,10 @@ def __init__( self, plug, **kw ) :
GafferUI.Label( "Edit Scope" )
self.__menuButton = GafferUI.MenuButton(
"",
menu = GafferUI.Menu( Gaffer.WeakMethod( self.__menuDefinition ) )
menu = GafferUI.Menu( Gaffer.WeakMethod( self.__menuDefinition ) ),
highlightOnOver = False
)
self.__menuButton._qtWidget().setFixedWidth( 100 )
self.__menuButton._qtWidget().setFixedWidth( 120 )
self.__navigationMenuButton = GafferUI.MenuButton(
image = "navigationArrow.png",
hasFrame = False,
Expand All @@ -154,8 +155,12 @@ def _updateFromValues( self, values, exception ) :
self.__editScopeNameChangedConnection = editScope.nameChangedSignal().connect(
Gaffer.WeakMethod( self.__editScopeNameChanged ), scoped = True
)
self.__editScopeMetadataChangedConnection = Gaffer.Metadata.nodeValueChangedSignal( editScope ).connect(
Gaffer.WeakMethod( self.__editScopeMetadataChanged ), scoped = True
)
else :
self.__editScopeNameChangedConnection = None
self.__editScopeMetadataChangedConnection = None

if self._qtWidget().property( "editScopeActive" ) != editScopeActive :
self._qtWidget().setProperty( "editScopeActive", GafferUI._Variant.toVariant( editScopeActive ) )
Expand All @@ -164,11 +169,21 @@ def _updateFromValues( self, values, exception ) :
def __updateMenuButton( self, editScope ) :

self.__menuButton.setText( editScope.getName() if editScope is not None else "None" )
image = None
if editScope is not None :
image = self.__paintIcon( editScope )

self.__menuButton.setImage( image )

def __editScopeNameChanged( self, editScope, oldName ) :

self.__updateMenuButton( editScope )

def __editScopeMetadataChanged( self, editScope, key, reason ) :

if key == "nodeGadget:color" :
self.__updateMenuButton( editScope )

def __editScope( self ) :

input = self.getPlug().getInput()
Expand Down Expand Up @@ -225,6 +240,7 @@ def __buildMenu( self, result, path, currentEditScope ) :
"active" : path[0] != "Downstream",
"label" : itemName,
"checkBox" : editScope == currentEditScope,
"icon" : self.__paintIcon( editScope ),
}
)
else :
Expand Down Expand Up @@ -349,6 +365,19 @@ def __navigationMenuDefinition( self ) :

return result

def __paintIcon( self, editScope ) :

pixmap = QtGui.QPixmap( 10, 10 )
pixmap.fill( QtGui.QColor( 0, 0, 0, 0 ) )

color = Gaffer.Metadata.value( editScope, "nodeGadget:color" )
painter = QtGui.QPainter( pixmap )
painter.fillRect( 0, 2, 10, 6, QtGui.QColor( 0, 0, 0 ) )
painter.fillRect( 1, 3, 8, 4, QtGui.QColor.fromRgbF( color[0], color[1], color[2] ) )
del painter

return GafferUI.Image( pixmap )

@staticmethod
def __userNodes( editScope ) :

Expand Down

0 comments on commit aa8c68b

Please sign in to comment.