@@ -237,7 +237,8 @@ def set_selected(self, selected=True):
237237 self .set_property ('selected' , selected )
238238
239239 def create_property (self , name , value , items = None , range = None ,
240- widget_type = NODE_PROP , tab = None , ext = None ):
240+ widget_type = NODE_PROP , tab = None , ext = None ,
241+ funcs = None ):
241242 """
242243 Creates a custom property to the node.
243244
@@ -269,8 +270,9 @@ def create_property(self, name, value, items=None, range=None,
269270 widget_type (int): widget flag to display in the ``PropertiesBinWidget``
270271 tab (str): name of the widget tab to display in the properties bin.
271272 ext (str): file ext of ``NODE_PROP_FILE``
273+ funcs (list) list of functions for NODE_PROP_BUTTON
272274 """
273- self .model .add_property (name , value , items , range , widget_type , tab , ext )
275+ self .model .add_property (name , value , items , range , widget_type , tab , ext , funcs )
274276
275277 def properties (self ):
276278 """
@@ -567,11 +569,8 @@ def add_file_input(self, name, label='', text='', tab=None, ext="*"):
567569 tab (str): name of the widget tab to display in.
568570 ext (str): file ext
569571 """
570- self .model .add_property (name , text , None , None , NODE_PROP_FILE , tab , ext )
571- # use create_property will cause strange error
572- # self.create_property(
573- # name, text, widget_type=NODE_PROP_FILE, tab=tab, ext=None)
574-
572+ self .create_property (
573+ name , text , widget_type = NODE_PROP_FILE , tab = tab , ext = ext )
575574 widget = NodeFilePath (self .view , name , label , text , ext )
576575 widget .value_changed .connect (lambda k , v : self .set_property (k , v ))
577576 self .view .add_widget (widget )
@@ -705,6 +704,21 @@ def add_output(self, name='output', multi_output=True, display_name=True,
705704 self .model .outputs [port .name ()] = port .model
706705 return port
707706
707+ def update_combo_menu (self , name , items ):
708+ if not self .has_property (name ):
709+ return
710+ old_value = self .get_property (name )
711+ self .set_property (name , items )
712+ _name = '_' + name + "_"
713+ if not self .has_property (_name ):
714+ self .create_property (_name , items )
715+ else :
716+ self .set_property (_name , items )
717+ if old_value in items :
718+ self .set_property (name , old_value )
719+ else :
720+ self .set_property (name , items [0 ])
721+
708722 def inputs (self ):
709723 """
710724 Returns all the input ports from the node.
0 commit comments