diff --git a/NodeGraphQt/base/graph.py b/NodeGraphQt/base/graph.py index 9d5c8346..0c8eef89 100644 --- a/NodeGraphQt/base/graph.py +++ b/NodeGraphQt/base/graph.py @@ -1368,9 +1368,12 @@ def _deserialize(self, data, relative_pos=False, pos=None, set_parent=True): for prop in node.model.properties.keys(): if prop in n_data.keys(): node.model.set_property(prop, n_data[prop]) + # set custom properties. for prop, val in n_data.get('custom', {}).items(): node.model.set_property(prop, val) + if prop in node.view.widgets: + node.view.widgets[prop].set_value(val) nodes[n_id] = node diff --git a/NodeGraphQt/qgraphics/node_base.py b/NodeGraphQt/qgraphics/node_base.py index 13838f02..ebaef9a2 100644 --- a/NodeGraphQt/qgraphics/node_base.py +++ b/NodeGraphQt/qgraphics/node_base.py @@ -676,7 +676,7 @@ def _delete_port(self, port, text): port (PortItem): port object. text (QtWidgets.QGraphicsTextItem): port text object. """ - port.delete() + [pipe.delete() for pipe in port.connected_pipes] port.setParentItem(None) text.setParentItem(None) self.scene().removeItem(port) diff --git a/NodeGraphQt/widgets/viewer.py b/NodeGraphQt/widgets/viewer.py index c6ba176d..65bd220e 100644 --- a/NodeGraphQt/widgets/viewer.py +++ b/NodeGraphQt/widgets/viewer.py @@ -169,10 +169,7 @@ def _set_viewer_pan(self, pos_x, pos_y): pos_x (float): x pos. pos_y (float): y pos. """ - speed = self._scene_range.width() * 0.0015 - x = -pos_x * speed - y = -pos_y * speed - self._scene_range.adjust(x, y, x, y) + self._scene_range.adjust(pos_x, pos_y, pos_x, pos_y) self._update_scene() def scale(self, sx, sy, pos=None): @@ -413,9 +410,10 @@ def mouseMoveEvent(self, event): zoom = 0.1 if pos_x > 0 else -0.1 self._set_viewer_zoom(zoom, 0.05, pos=event.pos()) elif self.MMB_state or (self.LMB_state and self.ALT_state): - pos_x = (event.x() - self._previous_pos.x()) - pos_y = (event.y() - self._previous_pos.y()) - self._set_viewer_pan(pos_x, pos_y) + previous_pos = self.mapToScene(self._previous_pos) + current_pos = self.mapToScene(event.pos()) + delta = previous_pos - current_pos + self._set_viewer_pan(delta.x(), delta.y()) if self.LMB_state and self._rubber_band.isActive: rect = QtCore.QRect(self._origin_pos, event.pos()).normalized() diff --git a/example_auto_nodes.py b/example_auto_nodes.py index 103abd6e..8b881d22 100644 --- a/example_auto_nodes.py +++ b/example_auto_nodes.py @@ -1,7 +1,8 @@ #!/usr/bin/python # -*- coding: utf-8 -*- from NodeGraphQt import NodeGraph, setup_context_menu, \ - QtWidgets, QtCore, PropertiesBinWidget, BackdropNode + PropertiesBinWidget, BackdropNode +from Qt import QtWidgets, QtCore from example_auto_nodes import Publish, RootNode, update_nodes, setup_node_menu import importlib import inspect diff --git a/example_auto_nodes/input_nodes.py b/example_auto_nodes/input_nodes.py index fb158574..4daa16ea 100644 --- a/example_auto_nodes/input_nodes.py +++ b/example_auto_nodes/input_nodes.py @@ -1,4 +1,4 @@ -from NodeGraphQt import QtCore +from Qt import QtCore from NodeGraphQt.constants import (NODE_PROP_VECTOR2, NODE_PROP_VECTOR3, NODE_PROP_VECTOR4)