Skip to content

Commit 8cfe9de

Browse files
committed
implemented BaseNode.hide_widget and BaseNode.show_widget #335
1 parent 141cf0d commit 8cfe9de

File tree

3 files changed

+55
-3
lines changed

3 files changed

+55
-3
lines changed

NodeGraphQt/nodes/base_node.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,50 @@ def add_checkbox(self, name, label='', text='', state=False, tab=None):
286286
#: redraw node to address calls outside the "__init__" func.
287287
self.view.draw_node()
288288

289+
def hide_widget(self, name):
290+
"""
291+
Hide an embedded node widget.
292+
293+
Warnings:
294+
Undo is NOT yet supported for this function.
295+
296+
Args:
297+
name (str): node property name for the widget.
298+
299+
See Also:
300+
:meth:`BaseNode.add_custom_widget`,
301+
:meth:`BaseNode.show_widget`,
302+
:meth:`BaseNode.get_widget`
303+
"""
304+
# TODO: implement this logic to the undo stack.
305+
if not self.view.has_widget(name):
306+
return
307+
widget = self.view.get_widget(name)
308+
widget.hide()
309+
self.view.draw_node()
310+
311+
def show_widget(self, name):
312+
"""
313+
Show an embedded node widget.
314+
315+
Warnings:
316+
Undo is NOT yet supported for this function.
317+
318+
Args:
319+
name (str): node property name for the widget.
320+
321+
See Also:
322+
:meth:`BaseNode.add_custom_widget`,
323+
:meth:`BaseNode.show_widget`,
324+
:meth:`BaseNode.get_widget`
325+
"""
326+
# TODO: implement this logic to the undo stack.
327+
if not self.view.has_widget(name):
328+
return
329+
widget = self.view.get_widget(name)
330+
widget.show()
331+
self.view.draw_node()
332+
289333
def add_input(self, name='input', multi_input=False, display_name=True,
290334
color=None, locked=False, painter_func=None):
291335
"""

NodeGraphQt/pkg_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/python
22
# -*- coding: utf-8 -*-
3-
__version__ = '0.6.3'
3+
__version__ = '0.6.4'
44
__status__ = 'Work in Progress'
55
__license__ = 'MIT'
66

NodeGraphQt/qgraphics/node_base.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,8 @@ def _calc_size_horizontal(self):
372372
widget_width = 0.0
373373
widget_height = 0.0
374374
for widget in self._widgets.values():
375+
if not widget.isVisible():
376+
continue
375377
w_width = widget.boundingRect().width()
376378
w_height = widget.boundingRect().height()
377379
if w_width > widget_width:
@@ -415,6 +417,8 @@ def _calc_size_vertical(self):
415417
widget_width = 0.0
416418
widget_height = 0.0
417419
for widget in self._widgets.values():
420+
if not widget.isVisible():
421+
continue
418422
if widget.boundingRect().width() > widget_width:
419423
widget_width = widget.boundingRect().width()
420424
widget_height += widget.boundingRect().height()
@@ -511,6 +515,8 @@ def _align_widgets_horizontal(self, v_offset):
511515
inputs = [p for p in self.inputs if p.isVisible()]
512516
outputs = [p for p in self.outputs if p.isVisible()]
513517
for widget in self._widgets.values():
518+
if not widget.isVisible():
519+
continue
514520
widget_rect = widget.boundingRect()
515521
if not inputs:
516522
x = rect.left() + 10
@@ -531,11 +537,15 @@ def _align_widgets_vertical(self, v_offset):
531537
y = rect.center().y() + v_offset
532538
widget_height = 0.0
533539
for widget in self._widgets.values():
540+
if not widget.isVisible():
541+
continue
534542
widget_rect = widget.boundingRect()
535543
widget_height += widget_rect.height()
536544
y -= widget_height / 2
537545

538546
for widget in self._widgets.values():
547+
if not widget.isVisible():
548+
continue
539549
widget_rect = widget.boundingRect()
540550
x = rect.center().x() - (widget_rect.width() / 2)
541551
widget.widget().setTitleAlign('center')
@@ -777,8 +787,6 @@ def set_proxy_mode(self, mode):
777787
if port.display_name:
778788
text.setVisible(port_text_visible)
779789

780-
781-
782790
self._text_item.setVisible(visible)
783791
self._icon_item.setVisible(visible)
784792

0 commit comments

Comments
 (0)