|
1 | 1 | #!/usr/bin/python |
2 | 2 | # -*- coding: utf-8 -*- |
| 3 | +import gc |
3 | 4 | import json |
4 | 5 | import os |
5 | 6 | import re |
| 7 | + |
6 | 8 | import copy |
7 | | -import gc |
8 | | -from .. import QtCore, QtWidgets, QtGui |
| 9 | + |
9 | 10 | from .commands import (NodeAddedCmd, |
10 | 11 | NodeRemovedCmd, |
11 | 12 | NodeMovedCmd, |
|
15 | 16 | from .model import NodeGraphModel |
16 | 17 | from .node import NodeObject, BaseNode |
17 | 18 | from .port import Port |
| 19 | +from .. import QtCore, QtWidgets, QtGui |
18 | 20 | from ..constants import (DRAG_DROP_ID, |
19 | 21 | PIPE_LAYOUT_CURVED, |
20 | 22 | PIPE_LAYOUT_STRAIGHT, |
21 | 23 | PIPE_LAYOUT_ANGLE, |
22 | 24 | IN_PORT, OUT_PORT, |
23 | 25 | VIEWER_GRID_LINES) |
24 | | -from ..widgets.viewer import NodeViewer |
25 | 26 | from ..widgets.node_space_bar import node_space_bar |
| 27 | +from ..widgets.viewer import NodeViewer |
26 | 28 |
|
27 | 29 |
|
28 | 30 | class QWidgetDrops(QtWidgets.QWidget): |
@@ -179,9 +181,10 @@ def _wire_signals(self): |
179 | 181 | self._viewer.connection_changed.connect(self._on_connection_changed) |
180 | 182 | self._viewer.moved_nodes.connect(self._on_nodes_moved) |
181 | 183 | self._viewer.node_double_clicked.connect(self._on_node_double_clicked) |
| 184 | + self._viewer.node_name_changed.connect(self._on_node_name_changed) |
182 | 185 | self._viewer.insert_node.connect(self._insert_node) |
183 | 186 |
|
184 | | - # pass through signals. |
| 187 | + # pass through translated signals. |
185 | 188 | self._viewer.node_selected.connect(self._on_node_selected) |
186 | 189 | self._viewer.node_selection_changed.connect( |
187 | 190 | self._on_node_selection_changed) |
@@ -254,6 +257,21 @@ def _on_property_bin_changed(self, node_id, prop_name, prop_value): |
254 | 257 | value = copy.deepcopy(prop_value) |
255 | 258 | node.set_property(prop_name, value) |
256 | 259 |
|
| 260 | + def _on_node_name_changed(self, node_id, name): |
| 261 | + """ |
| 262 | + called when a node text qgraphics item in the viewer is edited. |
| 263 | + (sets the name through the node object so undo commands are registered.) |
| 264 | +
|
| 265 | + Args: |
| 266 | + node_id (str): node id emitted by the viewer. |
| 267 | + name (str): new node name. |
| 268 | + """ |
| 269 | + node = self.get_node_by_id(node_id) |
| 270 | + node.set_name(name) |
| 271 | + |
| 272 | + # TODO: not sure about redrawing the node here. |
| 273 | + node.view.draw_node() |
| 274 | + |
257 | 275 | def _on_node_double_clicked(self, node_id): |
258 | 276 | """ |
259 | 277 | called when a node in the viewer is double click. |
|
0 commit comments