@@ -68,6 +68,10 @@ def cookNextNode(self):
6868 for n in nodeList :
6969 n .cook ()
7070
71+ def getData (self , port ):
72+ # for custom output data
73+ return self .get_property (port .name ())
74+
7175 def getInputData (self , port ):
7276 # get input data by input Port,the type of "port" can be :
7377 # int : Port index
@@ -89,7 +93,7 @@ def getInputData(self, port):
8993 return copy .deepcopy (self .defaultValue )
9094
9195 for from_port in from_ports :
92- data = from_port .node ().get_property (from_port . name () )
96+ data = from_port .node ().getData (from_port )
9397 return copy .deepcopy (data )
9498
9599 def when_disabled (self ):
@@ -101,19 +105,12 @@ def cook(self, forceCook=False):
101105 if not self ._autoCook and forceCook is not True :
102106 return
103107
104- _tmp = self ._autoCook
105- self ._autoCook = False
106-
107- if self .disabled ():
108- self ._autoCook = _tmp
109- self .when_disabled ()
110- self .cookNextNode ()
111- return
112-
113108 if not self .needCook :
114- self ._autoCook = _tmp
115109 return
116110
111+ _tmp = self ._autoCook
112+ self ._autoCook = False
113+
117114 if self .error ():
118115 self ._close_error ()
119116
@@ -123,6 +120,7 @@ def cook(self, forceCook=False):
123120 self .run ()
124121 except Exception as error :
125122 self .error (error )
123+
126124 self ._autoCook = _tmp
127125
128126 if self .error ():
@@ -149,11 +147,6 @@ def on_input_disconnected(self, to_port, from_port):
149147 return
150148 self .cook ()
151149
152- def set_disabled (self , mode = False ):
153- super (AutoNode , self ).set_disabled (mode )
154- if self .input_ports ():
155- self .cook ()
156-
157150 def checkPortType (self , to_port , from_port ):
158151 # None type port can connect with any other type port
159152 # types in self.matchTypes can connect with each other
@@ -224,6 +217,16 @@ def add_output(self, name='output', data_type=None, multi_output=True, display_n
224217 self .set_port_type (new_port , self .defaultOutputType )
225218 return new_port
226219
220+ def set_disabled (self , mode = False ):
221+ super (AutoNode , self ).set_disabled (mode )
222+ self ._autoCook = not mode
223+ if mode is True :
224+ self .when_disabled ()
225+ self .cookNextNode ()
226+ else :
227+ self .cook ()
228+
229+
227230 def _close_error (self ):
228231 self ._error = False
229232 self .set_property ('color' , self .defaultColor )
0 commit comments