66from PySide2 import QtCore
77from PySide2 .QtWidgets import QUndoStack , QAction , QApplication
88
9- from NodeGraphQt .base .actions import setup_context_menu
109from NodeGraphQt .base .commands import (NodeAddedCmd ,
1110 NodeRemovedCmd ,
1211 NodeMovedCmd ,
@@ -338,14 +337,15 @@ def create_node(self, node_type, name=None, selected=True, color=None, pos=None)
338337 name (str): set name of the node.
339338 selected (bool): set created node to be selected.
340339 color (tuple or str): node color (255, 255, 255) or '#FFFFFF'.
341- pos (tuple ): set position of the node (x, y ).
340+ pos (list[int, int] ): initial x, y position for the node (default: (0, 0) ).
342341
343342 Returns:
344343 NodeGraphQt.Node: the created instance of the node.
345344 """
346345 NodeCls = self ._vendor .create_node_instance (node_type )
347346 if NodeCls :
348347 node = NodeCls ()
348+
349349 node ._graph = self
350350 node .model ._graph_model = self .model
351351
@@ -360,21 +360,22 @@ def create_node(self, node_type, name=None, selected=True, color=None, pos=None)
360360 for pname , pattrs in prop_attrs .items ():
361361 graph_attrs [node .type ][pname ].update (pattrs )
362362
363- node .update ()
364-
365- self ._undo_stack .beginMacro ('created node' )
366- self ._undo_stack .push (NodeAddedCmd (self , node , pos ))
367- if name :
368- node .set_name (name )
369- else :
370- node .set_name (node .NODE_NAME )
363+ node .NODE_NAME = self .get_unique_name (name or node .NODE_NAME )
364+ node .model .name = node .NODE_NAME
365+ node .model .selected = selected
371366 if color :
372367 if isinstance (color , str ):
373368 color = color [1 :] if color [0 ] is '#' else color
374369 color = tuple (int (color [i :i + 2 ], 16 ) for i in (0 , 2 , 4 ))
375- node .set_color (* color )
376- node .set_selected (selected )
377- self ._undo_stack .endMacro ()
370+ node .model .color = color
371+ if pos :
372+ node .model .pos = [float (pos [0 ]), float (pos [1 ])]
373+
374+ node .update ()
375+
376+ undo_cmd = NodeAddedCmd (self , node , node .model .pos )
377+ undo_cmd .setText ('created node' )
378+ self ._undo_stack .push (undo_cmd )
378379 self .node_created .emit (node )
379380 return node
380381 raise Exception ('\n \n >> Cannot find node:\t "{}"\n ' .format (node_type ))
0 commit comments