Skip to content

Commit d60f9d3

Browse files
committed
exposed node border color controls and property widget bug fixes.
1 parent 972971d commit d60f9d3

File tree

8 files changed

+122
-39
lines changed

8 files changed

+122
-39
lines changed

NodeGraphQt/base/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def __init__(self):
9999
'icon': NodePropWidgetEnum.HIDDEN.value,
100100
'name': NodePropWidgetEnum.QLINE_EDIT.value,
101101
'color': NodePropWidgetEnum.COLOR_PICKER.value,
102-
'border_color': NodePropWidgetEnum.HIDDEN.value,
102+
'border_color': NodePropWidgetEnum.COLOR_PICKER.value,
103103
'text_color': NodePropWidgetEnum.COLOR_PICKER.value,
104104
'disabled': NodePropWidgetEnum.QCHECK_BOX.value,
105105
'selected': NodePropWidgetEnum.HIDDEN.value,

NodeGraphQt/custom_widgets/properties_bin/custom_widget_color_picker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def __init__(self, parent=None):
3333
def _on_vector_changed(self, _, value):
3434
self._color = tuple(value)
3535
self._update_color()
36-
self.value_changed.emit(self.toolTip(), value)
36+
self.value_changed.emit(self.get_name(), value)
3737

3838
def _on_select_color(self):
3939
current_color = QtGui.QColor(*self.get_value())
@@ -74,7 +74,7 @@ def set_value(self, value):
7474
self._color = value
7575
self._update_color()
7676
self._update_vector()
77-
self.value_changed.emit(self.toolTip(), value)
77+
self.value_changed.emit(self.get_name(), value)
7878

7979

8080
class PropColorPickerRGBA(PropColorPickerRGB):

NodeGraphQt/custom_widgets/properties_bin/custom_widget_file_paths.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def _on_value_change(self, value=None):
4343
if value is None:
4444
value = self._ledit.text()
4545
self.set_file_directory(value)
46-
self.value_changed.emit(self.toolTip(), value)
46+
self.value_changed.emit(self.get_name(), value)
4747

4848
def set_file_ext(self, ext=None):
4949
self._ext = ext or '*'

NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,19 @@ def _on_slider_mouse_press(self, event):
4949

5050
def _on_slider_mouse_release(self, event):
5151
if not self._realtime_update:
52-
self.value_changed.emit(self.toolTip(), self.get_value())
52+
self.value_changed.emit(self.get_name(), self.get_value())
5353
self._block = False
5454

5555
def _on_slider_changed(self, value):
5656
self._spinbox.setValue(value)
5757
if self._realtime_update:
58-
self.value_changed.emit(self.toolTip(), self.get_value())
58+
self.value_changed.emit(self.get_name(), self.get_value())
5959

6060
def _on_spnbox_changed(self, value):
6161
if value != self._slider.value():
6262
self._slider.setValue(value)
6363
if not self._block:
64-
self.value_changed.emit(self.toolTip(), self.get_value())
64+
self.value_changed.emit(self.get_name(), self.get_value())
6565

6666
def get_value(self):
6767
return self._spinbox.value()
@@ -70,7 +70,7 @@ def set_value(self, value):
7070
if value != self.get_value():
7171
self._block = True
7272
self._spinbox.setValue(value)
73-
self.value_changed.emit(self.toolTip(), value)
73+
self.value_changed.emit(self.get_name(), value)
7474
self._block = False
7575

7676
def set_min(self, value=0):

NodeGraphQt/custom_widgets/properties_bin/custom_widget_vectors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def _on_value_change(self, value=None, index=None):
3838
if index is not None:
3939
self._value = list(self._value)
4040
self._value[index] = value
41-
self.value_changed.emit(self.toolTip(), self._value)
41+
self.value_changed.emit(self.get_name(), self._value)
4242

4343
def _update_items(self):
4444
if not isinstance(self._value, (list, tuple)):

NodeGraphQt/custom_widgets/properties_bin/node_property_widgets.py

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,15 @@ def add_widget(self, name, widget, value, label=None, tooltip=None):
105105
label (str): custom label to display.
106106
tooltip (str): custom tooltip.
107107
"""
108+
label = label or name
109+
label_widget = QtWidgets.QLabel(label)
108110
if tooltip:
109111
widget.setToolTip('{}\n{}'.format(name, tooltip))
112+
label_widget.setToolTip('{}\n{}'.format(name, tooltip))
110113
else:
111114
widget.setToolTip(name)
115+
label_widget.setToolTip(name)
112116
widget.set_value(value)
113-
if label is None:
114-
label = name
115117
row = self.__layout.rowCount()
116118
if row > 0:
117119
row += 1
@@ -120,7 +122,7 @@ def add_widget(self, name, widget, value, label=None, tooltip=None):
120122
if widget.__class__.__name__ == 'PropTextEdit':
121123
label_flags = label_flags | QtCore.Qt.AlignTop
122124

123-
self.__layout.addWidget(QtWidgets.QLabel(label), row, 0, label_flags)
125+
self.__layout.addWidget(label_widget, row, 0, label_flags)
124126
self.__layout.addWidget(widget, row, 1)
125127

126128
def get_widget(self, name):
@@ -330,13 +332,16 @@ def __init__(self, parent=None, node=None):
330332
close_btn.clicked.connect(self._on_close)
331333

332334
self.name_wgt = PropLineEdit()
333-
self.name_wgt.setToolTip('name')
335+
self.name_wgt.set_name('name')
336+
self.name_wgt.setToolTip('name\nSet the node name.')
334337
self.name_wgt.set_value(node.name())
335338
self.name_wgt.value_changed.connect(self._on_property_changed)
336339

337340
self.type_wgt = QtWidgets.QLabel(node.type_)
338341
self.type_wgt.setAlignment(QtCore.Qt.AlignRight)
339-
self.type_wgt.setToolTip('type_')
342+
self.type_wgt.setToolTip(
343+
'type_\nNode type identifier followed by the class name.'
344+
)
340345
font = self.type_wgt.font()
341346
font.setPointSize(10)
342347
self.type_wgt.setFont(font)
@@ -416,8 +421,10 @@ def _read_node(self, node):
416421
if wid_type == 0:
417422
continue
418423

419-
tooltip = None
420424
widget = widget_factory.get_widget(wid_type)
425+
widget.set_name(prop_name)
426+
427+
tooltip = None
421428
if prop_name in common_props.keys():
422429
if 'items' in common_props[prop_name].keys():
423430
widget.set_items(common_props[prop_name]['items'])
@@ -438,15 +445,25 @@ def _read_node(self, node):
438445

439446
# add "Node" tab properties. (default props)
440447
self.add_tab('Node')
441-
default_props = ['color', 'text_color', 'disabled', 'id']
448+
default_props = {
449+
'color': 'Node base color.',
450+
'text_color': 'Node text color.',
451+
'border_color': 'Node border color.',
452+
'disabled': 'Disable/Enable node state.',
453+
'id': 'Unique identifier string to the node.'
454+
}
442455
prop_window = self.__tab_windows['Node']
443-
for prop_name in default_props:
456+
for prop_name, tooltip in default_props.items():
444457
wid_type = model.get_widget_type(prop_name)
445458
widget = widget_factory.get_widget(wid_type)
446-
prop_window.add_widget(prop_name,
447-
widget,
448-
model.get_property(prop_name),
449-
prop_name.replace('_', ' '))
459+
widget.set_name(prop_name)
460+
prop_window.add_widget(
461+
name=prop_name,
462+
widget=widget,
463+
value=model.get_property(prop_name),
464+
label=prop_name.replace('_', ' '),
465+
tooltip=tooltip
466+
)
450467

451468
widget.value_changed.connect(self._on_property_changed)
452469

NodeGraphQt/custom_widgets/properties_bin/prop_widgets_abstract.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,38 @@ class BaseProperty(QtWidgets.QWidget):
1212

1313
value_changed = QtCore.Signal(str, object)
1414

15+
def __init__(self, parent=None):
16+
super(BaseProperty, self).__init__(parent)
17+
self._name = None
18+
1519
def __repr__(self):
1620
return '<{}() object at {}>'.format(
1721
self.__class__.__name__, hex(id(self)))
1822

19-
def get_value(self):
23+
def get_name(self):
24+
"""
25+
Returns:
26+
str: property name matching the node property.
2027
"""
28+
return self._name
2129

30+
def set_name(self, name):
31+
"""
32+
Args:
33+
name (str): property name matching the node property.
34+
"""
35+
self._name = name
36+
37+
def get_value(self):
38+
"""
2239
Returns:
23-
object:
40+
object: widgets current value.
2441
"""
2542
raise NotImplementedError
2643

2744
def set_value(self, value):
2845
"""
29-
3046
Args:
31-
value (object):
32-
33-
Returns:
34-
object:
47+
value (object): property value to update the widget.
3548
"""
3649
raise NotImplementedError

0 commit comments

Comments
 (0)