Skip to content

Commit deaf3b1

Browse files
authored
Merge pull request #401 from jchanvfx/node_drawing_bugfixes
Node drawing bugfixes
2 parents 7d84f0d + 41c89b1 commit deaf3b1

File tree

8 files changed

+33
-16
lines changed

8 files changed

+33
-16
lines changed

NodeGraphQt/base/commands.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def set_node_property(self, name, value):
3636
# view widgets.
3737
if hasattr(view, 'widgets') and name in view.widgets.keys():
3838
# check if previous value is identical to current value,
39-
# prevent signals from causing a infinite loop.
39+
# prevent signals from causing an infinite loop.
4040
if view.widgets[name].get_value() != value:
4141
view.widgets[name].set_value(value)
4242

NodeGraphQt/base/node.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,6 @@ def update(self):
204204
"""
205205
settings = self.model.to_dict[self.model.id]
206206
settings['id'] = self.model.id
207-
if settings.get('custom'):
208-
settings['widgets'] = settings.pop('custom')
209-
210207
self.view.from_dict(settings)
211208

212209
def serialize(self):

NodeGraphQt/nodes/base_node.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,8 @@ def add_combo_menu(self, name, label='', items=None, tooltip=None,
237237
#: redraw node to address calls outside the "__init__" func.
238238
self.view.draw_node()
239239

240-
def add_text_input(self, name, label='', text='', tooltip=None, tab=None):
240+
def add_text_input(self, name, label='', text='', placeholder_text='',
241+
tooltip=None, tab=None):
241242
"""
242243
Creates a custom property with the :meth:`NodeObject.create_property`
243244
function and embeds a :class:`PySide2.QtWidgets.QLineEdit` widget
@@ -250,7 +251,8 @@ def add_text_input(self, name, label='', text='', tooltip=None, tab=None):
250251
Args:
251252
name (str): name for the custom property.
252253
label (str): label to be displayed.
253-
text (str): pre filled text.
254+
text (str): pre-filled text.
255+
placeholder_text (str): placeholder text.
254256
tooltip (str): widget tooltip.
255257
tab (str): name of the widget tab to display in.
256258
"""
@@ -261,7 +263,7 @@ def add_text_input(self, name, label='', text='', tooltip=None, tab=None):
261263
widget_tooltip=tooltip,
262264
tab=tab
263265
)
264-
widget = NodeLineEdit(self.view, name, label, text)
266+
widget = NodeLineEdit(self.view, name, label, text, placeholder_text)
265267
widget.setToolTip(tooltip or '')
266268
widget.value_changed.connect(lambda k, v: self.set_property(k, v))
267269
self.view.add_widget(widget)

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.34'
3+
__version__ = '0.6.35'
44
__status__ = 'Work in Progress'
55
__license__ = 'MIT'
66

NodeGraphQt/qgraphics/node_abstract.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,15 @@ def setSelected(self, selected):
5555
self._properties['selected'] = selected
5656
super(AbstractNodeItem, self).setSelected(selected)
5757

58+
def draw_node(self):
59+
"""
60+
Re-draw the node item in the scene with proper
61+
calculated size and widgets aligned.
62+
63+
(this is called from the builtin custom widgets.)
64+
"""
65+
return
66+
5867
def pre_init(self, viewer, pos=None):
5968
"""
6069
Called before node has been added into the scene.
@@ -63,7 +72,7 @@ def pre_init(self, viewer, pos=None):
6372
viewer (NodeGraphQt.widgets.viewer.NodeViewer): main viewer.
6473
pos (tuple): the cursor pos if node is called with tab search.
6574
"""
66-
pass
75+
return
6776

6877
def post_init(self, viewer, pos=None):
6978
"""
@@ -73,7 +82,7 @@ def post_init(self, viewer, pos=None):
7382
viewer (NodeGraphQt.widgets.viewer.NodeViewer): main viewer
7483
pos (tuple): the cursor pos if node is called with tab search.
7584
"""
76-
pass
85+
return
7786

7887
@property
7988
def id(self):

NodeGraphQt/qgraphics/node_backdrop.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def mouseReleaseEvent(self, event):
6767

6868
def paint(self, painter, option, widget):
6969
"""
70-
Draws the backdrop sizer on the bottom right corner.
70+
Draws the backdrop sizer in the bottom right corner.
7171
7272
Args:
7373
painter (QtGui.QPainter): painter used for drawing the item.
@@ -302,3 +302,10 @@ def width(self, width=0.0):
302302
def height(self, height=0.0):
303303
AbstractNodeItem.height.fset(self, height)
304304
self._sizer.set_pos(self._width, self._height)
305+
306+
def from_dict(self, node_dict):
307+
super().from_dict(node_dict)
308+
custom_props = node_dict.get('custom') or {}
309+
for prop_name, value in custom_props.items():
310+
if prop_name == 'backdrop_text':
311+
self.backdrop_text = value

NodeGraphQt/qgraphics/node_base.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,8 @@ def has_widget(self, name):
10491049

10501050
def from_dict(self, node_dict):
10511051
super(NodeItem, self).from_dict(node_dict)
1052-
widgets = node_dict.pop('widgets', {})
1053-
for name, value in widgets.items():
1054-
if self._widgets.get(name):
1055-
self._widgets[name].set_value(value)
1052+
custom_prop = node_dict.get('custom') or {}
1053+
for prop_name, value in custom_prop.items():
1054+
prop_widget = self._widgets.get(prop_name)
1055+
if prop_widget:
1056+
prop_widget.set_value(value)

NodeGraphQt/widgets/node_widgets.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ class NodeLineEdit(NodeBaseWidget):
326326
:meth:`NodeGraphQt.BaseNode.add_text_input`
327327
"""
328328

329-
def __init__(self, parent=None, name='', label='', text=''):
329+
def __init__(self, parent=None, name='', label='', text='', placeholder_text=''):
330330
super(NodeLineEdit, self).__init__(parent, name, label)
331331
bg_color = ViewerEnum.BACKGROUND_COLOR.value
332332
text_color = tuple(map(lambda i, j: i - j, (255, 255, 255),
@@ -352,6 +352,7 @@ def __init__(self, parent=None, name='', label='', text=''):
352352
stylesheet += style
353353
ledit = QtWidgets.QLineEdit()
354354
ledit.setText(text)
355+
ledit.setPlaceholderText(placeholder_text)
355356
ledit.setStyleSheet(stylesheet)
356357
ledit.setAlignment(QtCore.Qt.AlignCenter)
357358
ledit.editingFinished.connect(self.on_value_changed)

0 commit comments

Comments
 (0)