Skip to content

Commit e0426d2

Browse files
authored
Merge pull request #169 from ArnoChenFx/master
Fix AutoNode bug and compatible high dpi
2 parents 2a867c0 + c4a8152 commit e0426d2

File tree

15 files changed

+310
-368
lines changed

15 files changed

+310
-368
lines changed

NodeGraphQt/base/graph.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1210,6 +1210,10 @@ def _deserialize(self, data, relative_pos=False, pos=None, set_parent=True):
12101210
"""
12111211
if not self._editable:
12121212
return
1213+
1214+
_temp_auto_update = self._auto_update
1215+
self._auto_update = False
1216+
12131217
nodes = {}
12141218
# build the nodes.
12151219
for n_id, n_data in data.get('nodes', {}).items():
@@ -1269,6 +1273,7 @@ def _deserialize(self, data, relative_pos=False, pos=None, set_parent=True):
12691273

12701274
if set_parent:
12711275
[node.set_parent(self._current_node_space) for node in node_objs]
1276+
self._auto_update = _temp_auto_update
12721277

12731278
return node_objs
12741279

@@ -1340,8 +1345,7 @@ def import_session(self, file_path):
13401345
Args:
13411346
file_path (str): path to the serialized layout file.
13421347
"""
1343-
_temp_auto_update = self._auto_update
1344-
self._auto_update = False
1348+
13451349
file_path = file_path.strip()
13461350
if not os.path.isfile(file_path):
13471351
raise IOError('file does not exist.')
@@ -1368,7 +1372,6 @@ def import_session(self, file_path):
13681372
self.clear_undo_stack()
13691373
self._model.session = file_path
13701374
self.session_changed.emit(file_path)
1371-
self._auto_update = _temp_auto_update
13721375

13731376
def copy_nodes(self, nodes=None):
13741377
"""

NodeGraphQt/base/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def __init__(self, node):
2020
self.multi_connection = False
2121
self.visible = True
2222
self.connected_ports = defaultdict(list)
23-
self.data_type = 'None'
23+
self.data_type = 'NoneType'
2424

2525
def __repr__(self):
2626
return '<{}(\'{}\') @ {}>'.format(

NodeGraphQt/base/node.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ def add_checkbox(self, name, label='', text='', state=False, tab=None):
763763
self.view.add_widget(widget)
764764

765765
def add_input(self, name='input', multi_input=False, display_name=True,
766-
color=None, data_type='None', painter_func=None):
766+
color=None, data_type='NoneType', painter_func=None):
767767
"""
768768
Add input :class:`Port` to node.
769769
@@ -803,7 +803,7 @@ def add_input(self, name='input', multi_input=False, display_name=True,
803803
return port
804804

805805
def add_output(self, name='output', multi_output=True, display_name=True,
806-
color=None, data_type='None', painter_func=None):
806+
color=None, data_type='NoneType', painter_func=None):
807807
"""
808808
Add output :class:`Port` to node.
809809

NodeGraphQt/base/utils.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ def setup_context_menu(graph):
8585

8686
edit_menu.add_separator()
8787

88-
edit_menu.add_command('Layout Graph Down Stream', _layout_graph_down, 'L')
89-
edit_menu.add_command('Layout Graph Up Stream', _layout_graph_up, 'Ctrl+L')
88+
edit_menu.add_command('Layout Graph Up Stream', _layout_graph_up, 'L')
89+
edit_menu.add_command('Layout Graph Down Stream', _layout_graph_down, 'Ctrl+L')
9090

9191
edit_menu.add_separator()
9292

@@ -826,10 +826,14 @@ def minimize_node_ref_count(node):
826826
if hasattr(node, 'deleted'):
827827
del node
828828
return
829-
from .node import BaseNode, SubGraph
829+
from .node import BaseNode
830+
from .graph import SubGraph
830831
node._parent = None
831832
if isinstance(node, BaseNode):
832-
[wid.deleteLater() for wid in node.view._widgets.values()]
833+
try:
834+
[wid.deleteLater() for wid in node.view._widgets.values()]
835+
except:
836+
pass
833837
node.view._widgets.clear()
834838
for port in node._inputs:
835839
port.model.node = None

NodeGraphQt/qgraphics/pipe.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,8 +384,6 @@ def delete(self):
384384
self.output_port.remove_pipe(self)
385385
if self.scene():
386386
self.scene().removeItem(self)
387-
# TODO: not sure if we need this...?
388-
del self
389387

390388

391389
class LivePipe(Pipe):

NodeGraphQt/widgets/viewer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ def mousePressEvent(self, event):
251251

252252
items = self._items_near(map_pos, None, 20, 20)
253253
nodes = [i for i in items if isinstance(i, AbstractNodeItem)]
254-
pipes = [i for i in items if isinstance(i, Pipe)]
255254

256255
if nodes:
257256
self.MMB_state = False
@@ -735,7 +734,7 @@ def tab_search_set_nodes(self, nodes):
735734
self._search_widget.set_nodes(nodes)
736735

737736
def tab_search_toggle(self):
738-
if type(self._search_widget) is TabSearchMenuWidget:
737+
if isinstance(self._search_widget, TabSearchMenuWidget):
739738
return
740739

741740
pos = self._previous_pos
@@ -753,7 +752,7 @@ def tab_search_toggle(self):
753752
self.clearFocus()
754753

755754
def rebuild_tab_search(self):
756-
if type(self._search_widget) is TabSearchMenuWidget:
755+
if isinstance(self._search_widget, TabSearchMenuWidget):
757756
self._search_widget.rebuild = True
758757

759758
def context_menus(self):

example.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ def __init__(self):
135135

136136

137137
if __name__ == '__main__':
138+
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
138139
app = QtWidgets.QApplication([])
139140

140141
# create node graph.

example_auto_nodes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def get_published_nodes_from_folder(folder_path):
4747

4848

4949
if __name__ == '__main__':
50+
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
5051
app = QtWidgets.QApplication()
5152

5253
# create node graph.

example_auto_nodes/data_node.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
class VectorSplit(AutoNode):
77
"""
8-
Splict a vector to x,y,z
8+
Split a vector to x,y,z
99
"""
1010

1111
__identifier__ = 'Data'
@@ -49,7 +49,7 @@ def __init__(self):
4949
super(VectorMaker, self).__init__()
5050

5151
self.add_output('out', list)
52-
self.create_property("out",None)
52+
self.create_property("out", None)
5353

5454
self.add_input("x", float)
5555
self.add_input("y", float)

0 commit comments

Comments
 (0)