@@ -258,8 +258,8 @@ class NodePropWidget(QtWidgets.QWidget):
258258 property_changed = QtCore .Signal (str , str , object )
259259 property_closed = QtCore .Signal (str )
260260
261- #: emitted when a widget is shown or hidden.
262- visibility_changed = QtCore .Signal (str )
261+ # emitted when a widget is shown or hidden. (node_id, visible, widget)
262+ widget_visible_changed = QtCore .Signal (str , bool , QtWidgets . QWidget )
263263
264264 def __init__ (self , parent = None , node = None ):
265265 super (NodePropWidget , self ).__init__ (parent )
@@ -300,39 +300,21 @@ def __init__(self, parent=None, node=None):
300300
301301 self ._ports_container = self ._read_node (node )
302302 self ._ports_container .input_group_toggled .connect (
303- self ._on_input_group_toggled
303+ lambda v : self .widget_visible_changed .emit (
304+ self .__node_id , v , self ._ports_container .in_tree
305+ )
304306 )
305307 self ._ports_container .output_group_toggled .connect (
306- self ._on_output_group_toggled
308+ lambda v : self .widget_visible_changed .emit (
309+ self .__node_id , v , self ._ports_container .out_tree
310+ )
307311 )
308312
309313 def __repr__ (self ):
310314 return '<{} object at {}>' .format (
311315 self .__class__ .__name__ , hex (id (self ))
312316 )
313317
314- def _on_input_group_toggled (self , mode ):
315- """
316- Triggered when the input ports groupbox checkbox is clicked.
317-
318- Args:
319- mode (bool): group box checked state.
320- """
321- self ._ports_container .in_tree .setVisible (mode )
322- self ._ports_container .adjustSize ()
323- self .adjustSize ()
324- self .visibility_changed .emit (self .__node_id )
325-
326- def _on_output_group_toggled (self , mode ):
327- """
328- Triggered when the output ports groupbox checkbox is clicked.
329-
330- Args:
331- mode (bool): group box checked state.
332- """
333- self ._ports_container .out_tree .setVisible (mode )
334- self .visibility_changed .emit (self .__node_id )
335-
336318 def _on_close (self ):
337319 """
338320 called by the close button.
@@ -562,12 +544,16 @@ def __repr__(self):
562544 self .__class__ .__name__ , hex (id (self ))
563545 )
564546
565- def __on_prop_visibility_changed (self , node_id ):
566- return
567- # QtCompat.QHeaderView.setSectionResizeMode(
568- # self._prop_list.verticalHeader(),
569- # QtWidgets.QHeaderView.ResizeToContents
570- # )
547+ def __on_widget_visible_changed (self , node_id , visible , tree_widget ):
548+ items = self ._prop_list .findItems (node_id , QtCore .Qt .MatchExactly )
549+ if items :
550+ tree_widget .setVisible (visible )
551+ widget = self ._prop_list .cellWidget (items [0 ].row (), 0 )
552+ widget .adjustSize ()
553+ QtCompat .QHeaderView .setSectionResizeMode (
554+ self ._prop_list .verticalHeader (),
555+ QtWidgets .QHeaderView .ResizeToContents
556+ )
571557
572558 def __on_prop_close (self , node_id ):
573559 items = self ._prop_list .findItems (node_id , QtCore .Qt .MatchExactly )
@@ -659,8 +645,8 @@ def add_node(self, node):
659645 prop_widget = NodePropWidget (node = node )
660646 prop_widget .property_changed .connect (self .__on_property_widget_changed )
661647 prop_widget .property_closed .connect (self .__on_prop_close )
662- prop_widget .visibility_changed .connect (
663- self .__on_prop_visibility_changed
648+ prop_widget .widget_visible_changed .connect (
649+ self .__on_widget_visible_changed
664650 )
665651 self ._prop_list .setCellWidget (0 , 0 , prop_widget )
666652
0 commit comments