Skip to content

Commit 6df6dc2

Browse files
committed
node tree widget clean up and doc strings.
1 parent eeea4dd commit 6df6dc2

File tree

11 files changed

+87
-39
lines changed

11 files changed

+87
-39
lines changed

NodeGraphQt/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242

4343
__all__ = [
4444
'BackdropNode', 'BaseNode', 'Menu', 'MenuCommand', 'NodeGraph',
45-
'NodeObject', 'Port', 'PropertiesBinWidget', 'constants',
46-
'setup_context_menu'
45+
'NodeObject', 'NodeTreeWidget', 'Port', 'PropertiesBinWidget',
46+
'constants', 'setup_context_menu'
4747
]
4848

4949
try:
@@ -63,4 +63,5 @@
6363
from .base.actions import setup_context_menu
6464

6565
# widgets
66+
from .widgets.node_tree import NodeTreeWidget
6667
from .widgets.properties_bin import PropertiesBinWidget

NodeGraphQt/base/graph.py

Lines changed: 51 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from NodeGraphQt.base.node import NodeObject
1616
from NodeGraphQt.base.port import Port
1717
from NodeGraphQt.constants import DRAG_DROP_ID
18-
from NodeGraphQt.widgets.node_tree import NodeTreeWidget
1918
from NodeGraphQt.widgets.viewer import NodeViewer
2019

2120

@@ -45,8 +44,6 @@ def __init__(self, parent=None):
4544
self._node_factory = NodeFactory()
4645
self._undo_stack = QtWidgets.QUndoStack(self)
4746

48-
self._nodes_tree = None
49-
5047
tab = QtWidgets.QAction('Search Nodes', self)
5148
tab.setShortcut('tab')
5249
tab.triggered.connect(self._toggle_tab_search)
@@ -231,26 +228,63 @@ def scene(self):
231228
"""
232229
return self._viewer.scene()
233230

234-
def add_properties_bin(self, prop_bin):
231+
def background_color(self):
235232
"""
236-
Wire up a properties bin widget to the node graph.
233+
Return the node graph background color.
234+
235+
Returns:
236+
tuple: r, g ,b
237+
"""
238+
return self.scene().background_color
239+
240+
def set_background_color(self, r, g, b):
241+
"""
242+
Set node graph background color.
237243
238244
Args:
239-
prop_bin (NodeGraphQt.PropertiesBinWidget): properties widget.
245+
r (int): red value.
246+
g (int): green value.
247+
b (int): blue value.
240248
"""
241-
prop_bin.property_changed.connect(self._on_property_bin_changed)
249+
self.scene().background_color = (r, g, b)
242250

243-
def nodes_tree(self):
251+
def grid_color(self):
244252
"""
245-
Initializes the nodes list widget when first called.
253+
Return the node graph grid color.
246254
247255
Returns:
248-
NodeTreeWidget: the initialized widget.
256+
tuple: r, g ,b
257+
"""
258+
return self.scene().grid_color
259+
260+
def set_grid_color(self, r, g, b):
261+
"""
262+
Set node graph grid color.
263+
264+
Args:
265+
r (int): red value.
266+
g (int): green value.
267+
b (int): blue value.
249268
"""
250-
if self._nodes_tree is None:
251-
self._nodes_tree = NodeTreeWidget()
252-
self._nodes_tree.set_node_factory(self._node_factory)
253-
return self._nodes_tree
269+
self.scene().grid_color = (r, g, b)
270+
271+
def display_grid(self, display=True):
272+
"""
273+
Display node graph background grid.
274+
275+
Args:
276+
display: False to not draw the background grid.
277+
"""
278+
self.scene().grid = display
279+
280+
def add_properties_bin(self, prop_bin):
281+
"""
282+
Wire up a properties bin widget to the node graph.
283+
284+
Args:
285+
prop_bin (NodeGraphQt.PropertiesBinWidget): properties widget.
286+
"""
287+
prop_bin.property_changed.connect(self._on_property_bin_changed)
254288

255289
def undo_stack(self):
256290
"""
@@ -303,12 +337,12 @@ def acyclic(self):
303337
"""
304338
return self._model.acyclic
305339

306-
def set_acyclic(self, mode=True):
340+
def set_acyclic(self, mode=False):
307341
"""
308-
Set the node graph to be acyclic or not. (default=True)
342+
Enable the node graph to be a acyclic graph. (default=False)
309343
310344
Args:
311-
mode (bool): false to disable acyclic.
345+
mode (bool): true to enable acyclic.
312346
"""
313347
self._model.acyclic = mode
314348
self._viewer.acyclic = mode

NodeGraphQt/base/node.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,16 @@ def view(self):
9191
Returns the :class:`QtWidgets.QGraphicsItem` used in the scene.
9292
9393
Returns:
94-
AbstractNodeItem: node item.
94+
NodeGraphQt.qgraphics.node_abstract.AbstractNodeItem: node item.
9595
"""
9696
return self._view
9797

9898
def set_view(self, item):
9999
"""
100-
Sets the graphic item to use for the scene.
100+
Sets the qgraphics item to use for the scene.
101101
102102
Args:
103-
item (AbstractNodeItem): node view item.
103+
item (NodeGraphQt.qgraphics.node_abstract.AbstractNodeItem): node item.
104104
"""
105105
self._view = item
106106
self._view.id = self.model.id
@@ -109,14 +109,20 @@ def set_view(self, item):
109109
@property
110110
def model(self):
111111
"""
112-
Returns the node model.
112+
Return the node model.
113113
114114
Returns:
115-
NodeModel: node model object.
115+
NodeGraphQt.base.model.NodeModel: node model object.
116116
"""
117117
return self._model
118118

119119
def set_model(self, model):
120+
"""
121+
Set the node model.
122+
123+
Args:
124+
model (NodeGraphQt.base.model.NodeModel): node model object.
125+
"""
120126
self._model = model
121127
self._model.type_ = self.type_
122128
self._model.id = self.view.id

NodeGraphQt/base/port.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def view(self):
2828
returns the :class:`QtWidgets.QGraphicsItem` used in the scene.
2929
3030
Returns:
31-
PortItem: port item.
31+
NodeGraphQt.qgraphics.port.PortItem: port item.
3232
"""
3333
return self.__view
3434

@@ -38,7 +38,7 @@ def model(self):
3838
returns the port model.
3939
4040
Returns:
41-
PortModel: port model.
41+
NodeGraphQt.base.model.PortModel: port model.
4242
"""
4343
return self.__model
4444

NodeGraphQt/constants.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060

6161
# === NODE VIEWER ===
6262

63-
#: Node graph background color.
6463
VIEWER_BG_COLOR = (35, 35, 35)
6564
VIEWER_GRID_COLOR = (45, 45, 45)
6665
VIEWER_GRID_OVERLAY = True

NodeGraphQt/widgets/node_tree.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,21 @@ def __eq__(self, other):
1515

1616

1717
class NodeTreeWidget(QtWidgets.QTreeWidget):
18+
"""
19+
Node tree for displaying node types.
1820
19-
def __init__(self, parent=None):
21+
Args:
22+
parent (QtWidgets.QWidget): parent of the new widget.
23+
node_graph (NodeGraphQt.NodeGraph): node graph.
24+
"""
25+
26+
def __init__(self, parent=None, node_graph=None):
2027
super(NodeTreeWidget, self).__init__(parent)
2128
self.setDragDropMode(QtWidgets.QAbstractItemView.DragOnly)
2229
self.setHeaderHidden(True)
2330
self._factory = None
2431
self._custom_labels = {}
32+
self._set_node_factory(node_graph._node_factory)
2533

2634
def __repr__(self):
2735
return '<{} object at {}>'.format(self.__class__.__name__, hex(id(self)))
@@ -66,7 +74,7 @@ def _build_tree(self):
6674

6775
category_item.addChild(item)
6876

69-
def set_node_factory(self, factory):
77+
def _set_node_factory(self, factory):
7078
"""
7179
Set current node factory.
7280
@@ -87,6 +95,6 @@ def set_category_label(self, category, label):
8795

8896
def update(self):
8997
"""
90-
Update and refresh the node list widget.
98+
Update and refresh the node tree widget.
9199
"""
92100
self._build_tree()

NodeGraphQt/widgets/properties_bin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class PropertiesBinWidget(QtWidgets.QWidget):
5454
Node properties bin for displaying properties.
5555
5656
Args:
57-
parent (QtWidgets.QWidget): parent object.
57+
parent (QtWidgets.QWidget): parent of the new widget.
5858
node_graph (NodeGraphQt.NodeGraph): node graph.
5959
"""
6060

docs/classes.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ Classes
1010

1111
graph
1212
nodes
13-
connections
13+
connections
14+
menu

docs/index.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,3 @@ Contents
1717
constants
1818
classes
1919
widgets
20-
menu
21-
22-

docs/widgets.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ PropertiesBinWidget
1313
1414
from NodeGraphQt import NodeGraph, PropertiesBinWidget
1515
16+
# create node graph.
1617
graph = NodeGraph()
1718
1819
# create properties bin widget.
@@ -34,12 +35,13 @@ NodeTreeWidget
3435
.. code-block:: python
3536
:linenos:
3637
37-
from NodeGraphQt import NodeGraph
38+
from NodeGraphQt import NodeGraph, NodeTreeWidget
3839
40+
# create node graph.
3941
graph = NodeGraph()
4042
4143
# create node tree widget.
42-
nodes_tree = graph.nodes_tree()
44+
nodes_tree = NodeTreeWidget(node_graph=graph)
4345
nodes_tree.show()
4446
4547
----

0 commit comments

Comments
 (0)