Skip to content

Commit 7d98e5c

Browse files
committed
item resizing fix
1 parent 1a89848 commit 7d98e5c

File tree

1 file changed

+20
-34
lines changed

1 file changed

+20
-34
lines changed

NodeGraphQt/custom_widgets/properties_bin/node_property_widgets.py

Lines changed: 20 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)