Exemplo n.º 1
0
	def __init__ ( self, link = None, srcConnector = None, dstConnector = None ) :
		#
		QtModule.QGraphicsItem.__init__ ( self )

		from meShaderEd import getDefaultValue
		self.isStraight = getDefaultValue ( app_settings, 'WorkArea', 'straight_links' )

		# qt graphics stuff
		self.brushSelected = QtGui.QBrush ( QtGui.QColor ( 250, 250, 250 ) )
		self.brushNormal = QtGui.QBrush ( QtGui.QColor ( 20, 20, 20 ) )
		self.setFlag ( QtModule.QGraphicsItem.ItemIsSelectable )
		self.setZValue( 0 )

		self.link = link

		self.rect = QtCore.QRectF ()
		self.points = []
		self.path = None
		self.isLinkSelected = False
		self.srcPoint = self.dstPoint = None
		self.srcConnector = self.dstConnector = None

		self.setSrcConnector ( srcConnector )
		self.setDstConnector ( dstConnector)

		if srcConnector != None :
			if srcConnector.isConnectedToInput () and not srcConnector.isConnectedToOutput (): 
				self.swapConnectors ()
Exemplo n.º 2
0
    def __init__(self, node):
        #
        QtModule.QGraphicsItem.__init__(self)

        self.label_widget = None
        self.text_widget = None

        self.headerFont = QtGui.QFont()
        self.paramsFont = QtGui.QFont()

        self.x_offset = 10
        self.y_offset = 10
        self.radius = 10

        # node parameters
        self.showBorder = True
        self.justify = QtCore.Qt.AlignLeft  # left:center:right
        self.text = ''
        self.opacity = 0.5
        self.bgColor = QtGui.QColor(128, 128, 128)
        self.textColor = QtGui.QColor(0, 0, 0)
        self.selectedColor = QtGui.QColor(250, 250, 250)

        self.node = node

        if self.node is not None:
            self.updateGfxNode()
            (x, y) = self.node.offset
            self.setPos(x, y)

        self.PenBorderNormal = QtGui.QPen(QtGui.QBrush(self.textColor), 1.0,
                                          QtCore.Qt.SolidLine,
                                          QtCore.Qt.RoundCap,
                                          QtCore.Qt.RoundJoin)

        self.PenBorderSelected = QtGui.QPen(QtGui.QBrush(self.selectedColor),
                                            2.0, QtCore.Qt.SolidLine,
                                            QtCore.Qt.RoundCap,
                                            QtCore.Qt.RoundJoin)

        self.bgColor.setAlphaF(self.opacity)

        self.BrushNodeNormal = QtGui.QBrush(self.bgColor)

        # flag (new from QT 4.6...)
        self.setFlag(QtModule.QGraphicsItem.ItemSendsScenePositionChanges)
        self.setFlag(QtModule.QGraphicsItem.ItemSendsGeometryChanges)
        #self.setFlag ( QtModule.QGraphicsItem.ItemIsFocusable )

        # qt graphics stuff
        self.setFlag(QtModule.QGraphicsItem.ItemIsMovable)
        self.setFlag(QtModule.QGraphicsItem.ItemIsSelectable)
        self.setZValue(1)
Exemplo n.º 3
0
    def paint(self, painter, option, widget):
        # print ( ">> GfxSwatchNode.paint" )
        painter.setRenderHint(QtGui.QPainter.Antialiasing)
        painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform)

        self.paintShadow(painter)

        pen = self.PenBorderNormal

        if self.isSelected(): pen = self.PenBorderSelected

        painter.setPen(QtCore.Qt.NoPen)
        painter.setBrush(self.brush)  # QtCore.Qt.NoBrush
        painter.drawRoundedRect(self.rect, self.radius, self.radius,
                                QtCore.Qt.AbsoluteSize)

        if self.pixmap is not None:
            if not self.pixmap.isNull():
                #painter.drawPixmap ( 0, 0, self.pixmap.scaled ( self.swatchSize, self.swatchSize,  transformMode = QtCore.Qt.SmoothTransformation ) )
                imageBrush = QtGui.QBrush(
                    self.pixmap.scaled(
                        self.swatchSize,
                        self.swatchSize,
                        transformMode=QtCore.Qt.SmoothTransformation))
                painter.setBrush(imageBrush)

        painter.setPen(pen)
        painter.drawRoundedRect(self.rect, self.radius, self.radius,
                                QtCore.Qt.AbsoluteSize)
Exemplo n.º 4
0
    def updateNodeParams(self, node):
        #
        self.ui.list_inputs.clear()
        self.ui.list_outputs.clear()

        linkedFont = QtGui.QFont()
        linkedFont.setItalic(True)
        linkedBrush = QtGui.QBrush()
        linkedBrush.setColor(QtCore.Qt.blue)
        # setup input params list
        for param in node.inputParams:
            item = QtModule.QListWidgetItem(param.label)
            item.setData(QtCore.Qt.UserRole + 1, QtCore.QVariant(param))
            item.setData(QtCore.Qt.UserRole + 2, QtCore.QVariant(node))
            if node.isInputParamLinked(param):
                item.setFont(linkedFont)
                item.setForeground(linkedBrush)
            self.ui.list_inputs.addItem(item)
        # setup output params list
        for param in node.outputParams:
            item = QtModule.QListWidgetItem(param.label)
            item.setData(QtCore.Qt.UserRole + 1, QtCore.QVariant(param))
            item.setData(QtCore.Qt.UserRole + 2, QtCore.QVariant(node))
            if node.isOutputParamLinked(param):
                item.setFont(linkedFont)
                item.setForeground(linkedBrush)
            self.ui.list_outputs.addItem(item)
Exemplo n.º 5
0
    def __init__(self, parent):
        #
        QtModule.QGraphicsView.__init__(self, parent)
        #
        # Define signals for PyQt5
        #
        if usePySide or usePyQt5:
            #
            self.mouseDoubleClickSignal = Signal()
            #
        self.state = 'idle'
        self.panStartPos = None

        self.pixmap = None

        # set scene
        scene = QtModule.QGraphicsScene(self)

        scene.setSceneRect(0, 0, 256, 256)
        #scene.setItemIndexMethod ( QtGui.QGraphicsScene.NoIndex )
        self.setScene(scene)

        # qt graphics stuff
        #self.setCacheMode ( QtGui.QGraphicsView.CacheBackground )
        self.setRenderHint(QtGui.QPainter.Antialiasing)

        self.setTransformationAnchor(QtModule.QGraphicsView.AnchorUnderMouse)
        self.setResizeAnchor(QtModule.QGraphicsView.AnchorViewCenter)
        self.setDragMode(QtModule.QGraphicsView.RubberBandDrag)

        self.setMouseTracking(False)

        self.BgBrush = QtGui.QBrush(QtGui.QColor(128, 128, 128))
Exemplo n.º 6
0
    def __init__(self, node=None, swatchSize=UI.SWATCH_SIZE):
        #
        QtModule.QGraphicsItem.__init__(self)

        self.brush = QtGui.QBrush(QtGui.QColor(128, 128, 128))
        self.PenBorderNormal = QtGui.QPen(QtGui.QBrush(QtGui.QColor(0, 0, 0)),
                                          1.0, QtCore.Qt.SolidLine,
                                          QtCore.Qt.RoundCap,
                                          QtCore.Qt.RoundJoin)

        self.PenBorderSelected = QtGui.QPen(
            QtGui.QBrush(QtGui.QColor(250, 250, 250)), 2.0,
            QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)

        self.node = node
        self.inputConnectors = []

        self.isNodeSelected = False

        self.radius = UI.NODE_RADIUS
        self.swatchSize = UI.SWATCH_SIZE

        self.shadow_offset = UI.SHADOW_OFFSET
        self.shadow_opacity = UI.SHADOW_OPACITY

        shadowColor = QtGui.QColor(0, 0, 0)
        shadowColor.setAlphaF(self.shadow_opacity)
        self.BrushShadow = QtGui.QBrush(shadowColor)
        self.PenShadow = QtGui.QPen(shadowColor)

        self.rect = QtCore.QRectF(0, 0, self.swatchSize, self.swatchSize)
        self.pixmap = None

        if self.node is not None:
            self.updateGfxNode()
            (x, y) = self.node.offset
            self.setPos(x, y)

        # flag (new from QT 4.6...)
        self.setFlag(QtModule.QGraphicsItem.ItemSendsScenePositionChanges)
        self.setFlag(QtModule.QGraphicsItem.ItemSendsGeometryChanges)

        # qt graphics stuff
        self.setFlag(QtModule.QGraphicsItem.ItemIsMovable)
        self.setFlag(QtModule.QGraphicsItem.ItemIsSelectable)
        self.setZValue(1)
Exemplo n.º 7
0
    def scanXmlNodes(self, filename):
        #
        dom = QtXml.QDomDocument('')
        nodeFilename = self.dirName + '/' + self.liblevel + filename

        file = QtCore.QFile(self.libdir.filePath(filename))

        if file.open(QtCore.QIODevice.ReadOnly):
            if dom.setContent(file):
                node = dom.documentElement()
                if node.nodeName() == 'nodenet' or node.nodeName() == 'node':
                    nodeName = node.attributes().namedItem('name').nodeValue()
                    nodeType = node.attributes().namedItem('type').nodeValue()
                    nodeAuthor = node.attributes().namedItem(
                        'author').nodeValue()
                    nodeIcon = node.attributes().namedItem('icon').nodeValue()
                    nodeHelp = ''
                    help_tag = node.namedItem('help')

                    if not help_tag.isNull():
                        nodeHelp = help_tag.toElement().text()

                    item = QtGui.QStandardItem(nodeName)
                    item.setEditable(False)

                    if not usePySide:
                        item.setData(QtCore.QVariant(nodeAuthor),
                                     QtCore.Qt.UserRole + 1)
                        item.setData(QtCore.QVariant(nodeType),
                                     QtCore.Qt.UserRole + 2)
                        item.setData(QtCore.QVariant(nodeHelp),
                                     QtCore.Qt.UserRole + 3)
                        item.setData(QtCore.QVariant(nodeFilename),
                                     QtCore.Qt.UserRole + 4)
                        item.setData(QtCore.QVariant(nodeIcon),
                                     QtCore.Qt.UserRole + 5)
                    else:
                        item.setData(nodeAuthor, QtCore.Qt.UserRole + 1)
                        item.setData(nodeType, QtCore.Qt.UserRole + 2)
                        item.setData(nodeHelp, QtCore.Qt.UserRole + 3)
                        item.setData(nodeFilename, QtCore.Qt.UserRole + 4)
                        item.setData(nodeIcon, QtCore.Qt.UserRole + 5)

                    if node.nodeName() == 'nodenet':
                        # set Blue color for nodenet items
                        brush = QtGui.QBrush()
                        brush.setColor(QtCore.Qt.blue)
                        item.setForeground(brush)
                        item.setWhatsThis('nodenet')
                    else:
                        item.setWhatsThis('node')

                    self.parentItem.appendRow(item)
        file.close()
Exemplo n.º 8
0
    def onNodeChanged(self):
        #
        if DEBUG_MODE: print '>> ExportShaderDialog.onNodeChanged'
        self.disconnectSignals()
        item = self.ui.list_nodes.currentItem()
        if not usePyQt5:
            node = item.data(QtCore.Qt.UserRole + 1).toPyObject()
        else:
            node = item.data(QtCore.Qt.UserRole + 1)
        print '* (%s) selected' % node.label
        self.ui.node.setNode(node)
        self.ui.prop_tabWidget.setCurrentIndex(0)

        if self.ui.list_nodes.currentRow() != 1:
            self.updateNodeParams(node)
            self.ui.list_inputs.clear()
            self.ui.list_outputs.clear()

            linkedFont = QtGui.QFont()
            linkedFont.setItalic(True)
            linkedBrush = QtGui.QBrush()
            linkedBrush.setColor(QtCore.Qt.blue)
            # setup input params list
            for param in node.inputParams:
                item = QtModule.QListWidgetItem(param.label)
                item.setData(QtCore.Qt.UserRole + 1, QtCore.QVariant(param))
                item.setData(QtCore.Qt.UserRole + 2, QtCore.QVariant(node))
                if node.isInputParamLinked(param):
                    item.setFont(linkedFont)
                    item.setForeground(linkedBrush)
                self.ui.list_inputs.addItem(item)

            # setup output params list
            for param in node.outputParams:
                item = QtModule.QListWidgetItem(param.label)
                item.setData(QtCore.Qt.UserRole + 1, QtCore.QVariant(param))
                item.setData(QtCore.Qt.UserRole + 2, QtCore.QVariant(node))
                if node.isOutputParamLinked(param):
                    item.setFont(linkedFont)
                    item.setForeground(linkedBrush)
                self.ui.list_outputs.addItem(item)
        else:
            self.updateComputedParams()

        self.connectSignals()
Exemplo n.º 9
0
    def drawBackground(self, painter, rect):
        #
        sc_rect = self.sceneRect()
        bbrush = QtGui.QBrush(QtGui.QColor(148, 148,
                                           148))  ## painter.background()
        painter.fillRect(rect, bbrush)

        if self.drawGrid:
            #  print( "grid size = %d" % self.gridSize )
            gr_pen = QtGui.QPen(QtGui.QColor(180, 180, 180))
            gr_pen.setWidth(0)
            painter.setPen(gr_pen)
            for x in range(int(sc_rect.x()), int(sc_rect.right()),
                           self.gridSize):
                painter.drawLine(x, sc_rect.y(), x, sc_rect.bottom())
            for y in range(int(sc_rect.y()), int(sc_rect.bottom()),
                           self.gridSize):
                painter.drawLine(sc_rect.x(), y, sc_rect.right(), y)
Exemplo n.º 10
0
    def __init__(self, text, param=None, bgFill=True):
        #
        QtModule.QGraphicsItem.__init__(self)

        self.text = text
        self.param = param
        self.help = None

        self.normalColor = QtGui.QColor(0, 0, 0)
        self.selectedColor = QtGui.QColor(240, 240, 240)
        self.alternateColor = QtGui.QColor(250, 170, 0)
        self.bgColor = QtGui.QColor(140, 140, 140)

        self.PenNormal = QtGui.QPen(self.normalColor)
        self.PenSelected = QtGui.QPen(self.selectedColor)
        self.PenAlternate = QtGui.QPen(self.alternateColor)
        self.bgBrush = QtGui.QBrush(self.bgColor)

        self.pen = self.PenNormal

        self.font = QtGui.QFont()

        self.justify = QtCore.Qt.AlignLeft

        self.bgFill = bgFill
        self.selected = False
        self.alternate = False
        self.bold = False
        self.italic = False

        self.editable = False
        self.processEvents = False
        self.setFlag(QtModule.QGraphicsItem.ItemIsMovable, False)
        self.setFlag(QtModule.QGraphicsItem.ItemIsSelectable, False)

        self.rect = QtCore.QRectF()
Exemplo n.º 11
0
	def __init__ ( self, node ) :
		#
		QtModule.QGraphicsItem.__init__ ( self )

		self.node = node
		self.header = {}

		self.outputParamLabels = []
		self.inputParamLabels = []

		self.outputConnectors = []
		self.inputConnectors = []

		self.headerFont = QtGui.QFont ()
		self.paramsFont = QtGui.QFont ()

		self.x_offset = 10
		self.y_offset = 10
		self.radius = UI.NODE_RADIUS

		self.swatchSize = UI.SWATCH_SIZE
		self.hasSwatch = False

		self.shadow_offset = UI.SHADOW_OFFSET
		self.shadow_opacity = UI.SHADOW_OPACITY
		
		self.normalColor = QtGui.QColor ( 0, 0, 0 )
		self.selectedColor = QtGui.QColor ( 250, 250, 250 )
		alternateColor = QtGui.QColor ( 240, 140, 0 )
		self.bgColor = self.get_bg_color () 
		
		self.shadowColor = QtGui.QColor ( 0, 0, 0 )
		self.shadowColor.setAlphaF ( self.shadow_opacity )
		
		self.PenBorderNormal = QtGui.QPen( QtGui.QBrush ( self.normalColor ),
																	 1.0,
																	 QtCore.Qt.SolidLine,
																	 QtCore.Qt.RoundCap,
																	 QtCore.Qt.RoundJoin )

		self.PenBorderSelected = QtGui.QPen( QtGui.QBrush ( self.selectedColor ),
																	 2.0,
																	 QtCore.Qt.SolidLine,
																	 QtCore.Qt.RoundCap,
																	 QtCore.Qt.RoundJoin )

		self.PenNodeShaderParam = QtGui.QPen( QtGui.QColor( 250, 250, 250 ) )

		self.BrushNodeNormal = QtGui.QBrush ( self.bgColor )
		self.BrushShadow = QtGui.QBrush ( self.shadowColor )
		self.PenShadow = QtGui.QPen ( self.shadowColor )

		self.collapse = None # 'input' 'output' 'all'

		if self.node is not None :
			self.connectSignals ()
			self.updateGfxNode ()
			( x, y ) = self.node.offset
			self.setPos ( x, y )

		# flag (new from QT 4.6...)
		self.setFlag ( QtModule.QGraphicsItem.ItemSendsScenePositionChanges )
		self.setFlag ( QtModule.QGraphicsItem.ItemSendsGeometryChanges )

		# qt graphics stuff
		self.setFlag ( QtModule.QGraphicsItem.ItemIsMovable )
		self.setFlag ( QtModule.QGraphicsItem.ItemIsSelectable )
		self.setZValue ( 1 )
Exemplo n.º 12
0
    def __init__(self):
        #
        QtModule.QGraphicsView.__init__(self)
        #
        # Define signals for PyQt5
        #
        if usePySide or usePyQt5:
            #
            self.selectNodes = Signal()  #( list, list )
            self.nodeConnectionChanged = Signal(
            )  #QtCore.pyqtSignal ( QtModule.QGraphicsObject, QtCore.QObject )

            self.gfxNodeAdded = Signal()  #( QtModule.QGraphicsObject )
            self.gfxNodeRemoved = Signal()  #( QtModule.QGraphicsObject )
            #
        self.drawGrid = True
        self.gridSnap = False
        self.straightLinks = False
        self.reverseFlow = False

        self.gridSize = 10
        self.minGap = 120
        self.current_Z = 1

        self.state = 'idle'
        self.pressed = False
        self.startPos = None

        self.lastConnectCandidate = None
        self.currentGfxLink = None

        self.inspectedNode = None
        self.nodeNet = None

        self.selectedNodes = []
        self.selectedLinks = []

        # set scene
        scene = WorkAreaScene(self)

        scene.setSceneRect(-10000, -10000, 20000, 20000)
        #scene.setItemIndexMethod ( QtGui.QGraphicsScene.NoIndex )
        self.setScene(scene)

        # qt graphics stuff
        self.setCacheMode(QtModule.QGraphicsView.CacheBackground)
        self.setRenderHint(QtGui.QPainter.Antialiasing)

        self.setTransformationAnchor(QtModule.QGraphicsView.AnchorUnderMouse
                                     )  # QtGui.QGraphicsView.AnchorUnderMouse
        self.setResizeAnchor(
            QtModule.QGraphicsView.AnchorUnderMouse)  # AnchorViewCenter
        self.setDragMode(QtModule.QGraphicsView.RubberBandDrag)

        self.setMouseTracking(False)
        self.setAcceptDrops(True)
        """
		viewport = self.viewport()
		if viewport is not None :
			print ">> WorkArea viewport.setAcceptTouchEvents"
			#proxy = QtGui.QGraphicsProxyWidget ()
			proxy = viewport.graphicsProxyWidget ()
			if proxy is not None :
				proxy.setAcceptTouchEvents ( True )

			#self.setAttribute ( QtGui.AcceptTouchEvents, True )
			#viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
			#setDragMode(ScrollHandDrag);
			#Qt::WA_AcceptTouchEvents
		"""
        self.viewBrush = QtGui.QBrush(QtGui.QColor(148, 148, 148))
        self.setBackgroundBrush(self.viewBrush)

        # self.connectSignals ()

        if DEBUG_MODE: print ">> WorkArea. __init__"
Exemplo n.º 13
0
	def __init__ ( self, param = None, radius = UI.CONNECTOR_RADIUS, isRound = True, node = None ) :
		#
		QtModule.QGraphicsItem.__init__ ( self )
		self.paramsBrushes = {   'c' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.darkRed ) )
														,'f' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.lightGray ) )
														,'m' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.darkYellow ) )
														,'p' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.darkCyan ) )
														,'s' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.darkGreen ) )
														,'v' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.darkMagenta ) )
														,'n' : QtGui.QBrush ( QtGui.QColor ( QtCore.Qt.darkBlue ) )
														,'I' : QtGui.QBrush ( QtGui.QColor ( 'white' ) )
														,'G' : QtGui.QBrush ( QtGui.QColor ( 'red' ) )
														,'R' : QtGui.QBrush ( QtGui.QColor ( 'orange' ) )
												 }
		self.brush = QtGui.QBrush ( QtGui.QColor ( 140, 140, 140 ) ) # ( 128, 128, 128 ) ( 132, 132, 132 )
		self.PenBorderNormal = QtGui.QPen ( QtGui.QColor ( 0, 0, 0 ) )
		self.PenBorderSelected = QtGui.QPen ( QtGui.QColor ( 240, 240, 240 ), 2.0 )

		self.isNodeSelected = False
		self.isRound = isRound
		self.radius = radius
		self.rect = QtCore.QRectF ( 0, 0, radius*2, radius*2 )
		self.param = param  # Node parameter
		self.links = []     # gfxLinks list
		self.singleLinkOnly = True
		self.state = 'idle'

		self.node = node  # is not None if this "ConnectorNode"
		if node is not None :
			# flag (new from QT 4.6...)
			#self.setFlag ( QtModule.QGraphicsItem.ItemSendsScenePositionChanges )
			self.setFlag ( QtModule.QGraphicsItem.ItemSendsGeometryChanges )

			# qt graphics stuff
			self.setFlag ( QtModule.QGraphicsItem.ItemIsMovable )
			self.setFlag ( QtModule.QGraphicsItem.ItemIsSelectable )
			self.setZValue ( 1 )
			( x, y ) = self.node.offset
			self.setPos ( x, y )
		#
		# setup connector color
		#
		paramTypeStr = self.getInputParam ().encodedTypeStr ()
		if paramTypeStr in self.paramsBrushes.keys () :
			self.brush = self.paramsBrushes [ paramTypeStr ]
Exemplo n.º 14
0
	def buildGui ( self ) :
		# build the gui created with QtDesigner
		self.ui = Ui_NodeEditorDialog ()
		self.ui.setupUi ( self )

		if self.editNode is not None :
			#
			self.setWindowTitle ( 'NodeEditor: %s (%s)' % ( self.editNode.label, self.editNode.name ) )
			
			linkedFont = QtGui.QFont ()
			linkedFont.setItalic ( True )
			linkedBrush = QtGui.QBrush ()
			linkedBrush.setColor ( QtCore.Qt.blue )
			
			# setup loacal variables list
			for name in self.editNode.internals :
				item = QtModule.QListWidgetItem ( name )
				self.ui.internals_list.ui.listWidget.addItem ( item )
			
			# setup includes list
			for name in self.editNode.includes :
				item = QtModule.QListWidgetItem ( name )
				self.ui.includes_list.ui.listWidget.addItem ( item )
			
			# setup input params list
			for param in self.editNode.inputParams :
				item = QtModule.QListWidgetItem ( param.name )
				if self.editNode.isInputParamLinked ( param ) :
					item.setFont ( linkedFont )
					item.setForeground ( linkedBrush )
				self.ui.input_list.ui.listWidget.addItem ( item )
	
			# setup output params list
			for param in self.editNode.outputParams :
				item = QtModule.QListWidgetItem ( param.name )
				if self.editNode.isOutputParamLinked ( param ) :
					item.setFont ( linkedFont )
					item.setForeground ( linkedBrush )
				self.ui.output_list.ui.listWidget.addItem ( item )
	
			# setup input links list
			for link in self.editNode.getInputLinks () :
				item = QtModule.QListWidgetItem ( 'id=%d' % link.id  )
				if not usePySide :
					item.setData ( QtCore.Qt.UserRole, QtCore.QVariant ( int ( link.id ) ) )
				else :
					item.setData ( QtCore.Qt.UserRole, int ( link.id ) )
				self.ui.input_links_listWidget.addItem ( item )
	
			# setup output links list
			for link in self.editNode.getOutputLinks () :
				item = QtModule.QListWidgetItem ( 'id=%d' % link.id  )
				if not usePySide :
					item.setData ( QtCore.Qt.UserRole, QtCore.QVariant ( int ( link.id ) ) )
				else :
					item.setData ( QtCore.Qt.UserRole, int ( link.id ) )
				self.ui.output_links_listWidget.addItem ( item )
				
			# setup event handlers list
			if self.editNode.event_code :
				for handler in self.editNode.event_code.keys () :
					item = QtModule.QListWidgetItem ( handler )
					self.ui.handlers_list.ui.listWidget.addItem ( item )
	
			self.nodeCodeEditor = self.ui.node_code
			self.nodeCodeEditor.setNodeCode ( self.editNode.code, 'SL' )
			
			self.controlCodeEditor = self.ui.control_code
			self.controlCodeEditor.setNodeCode ( self.editNode.control_code, 'python' )
			
			self.eventCodeEditor = self.ui.event_code
			#self.eventCodeEditor.setNodeCode ( self.editNode.event_code, 'python' )
			
			self.paramCodeEditor = self.ui.param_code
			#self.paramCodeEditor.setNodeCode ( self.editNode.param_code, 'python' )

			
			self.nodePropertiesEditor = self.ui.node
			self.nodePropertiesEditor.setNode ( self.editNode )
			
			self.nodeParamEditor = self.ui.param
			
			self.nodeLinkEditor = self.ui.link

			self.ui.tabWidget.setCurrentIndex ( TAB_NODE_CODE )
			self.ui.toolBox.setCurrentIndex ( IDX_INTERNALS )
			self.ui.tabs_param_list.setCurrentIndex ( 0 ) # input param tab