Skip to content

Commit 45d6948

Browse files
committed
minor clean up.
1 parent 2b3d8f6 commit 45d6948

File tree

4 files changed

+61
-36
lines changed

4 files changed

+61
-36
lines changed

NodeGraphQt/base/graph.py

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,7 +1478,7 @@ def delete_nodes(self, nodes, push_undo=True):
14781478

14791479
def extract_nodes(self, nodes, push_undo=True, prompt_warning=True):
14801480
"""
1481-
Extract select nodes from it connections.
1481+
Extract select nodes from its connections.
14821482
14831483
Args:
14841484
nodes (list[NodeGraphQt.BaseNode]): list of node instances.
@@ -1843,7 +1843,8 @@ def serialize_session(self):
18431843
"""
18441844
return self._serialize(self.all_nodes())
18451845

1846-
def deserialize_session(self, layout_data):
1846+
def deserialize_session(self, layout_data, clear_session=True,
1847+
clear_undo_stack=True):
18471848
"""
18481849
Load node graph session from a dictionary object.
18491850
@@ -1854,11 +1855,15 @@ def deserialize_session(self, layout_data):
18541855
18551856
Args:
18561857
layout_data (dict): dictionary object containing a node session.
1858+
clear_session (bool): clear current session.
1859+
clear_undo_stack (bool): clear the undo stack.
18571860
"""
1858-
self.clear_session()
1861+
if clear_session:
1862+
self.clear_session()
18591863
self._deserialize(layout_data)
18601864
self.clear_selection()
1861-
self._undo_stack.clear()
1865+
if clear_undo_stack:
1866+
self._undo_stack.clear()
18621867

18631868
def save_session(self, file_path):
18641869
"""
@@ -1872,7 +1877,7 @@ def save_session(self, file_path):
18721877
Args:
18731878
file_path (str): path to the saved node layout.
18741879
"""
1875-
serialized_data = self._serialize(self.all_nodes())
1880+
serialized_data = self.serialize_session()
18761881
file_path = file_path.strip()
18771882

18781883
def default(obj):
@@ -1906,14 +1911,15 @@ def load_session(self, file_path):
19061911
raise IOError('file does not exist: {}'.format(file_path))
19071912

19081913
self.clear_session()
1909-
self.import_session(file_path)
1914+
self.import_session(file_path, clear_undo_stack=True)
19101915

1911-
def import_session(self, file_path):
1916+
def import_session(self, file_path, clear_undo_stack=True):
19121917
"""
1913-
Import node graph session layout file.
1918+
Import node graph into the current session.
19141919
19151920
Args:
19161921
file_path (str): path to the serialized layout file.
1922+
clear_undo_stack (bool): clear the undo stack after import.
19171923
"""
19181924
file_path = file_path.strip()
19191925
if not os.path.isfile(file_path):
@@ -1929,15 +1935,18 @@ def import_session(self, file_path):
19291935
if not layout_data:
19301936
return
19311937

1932-
self._deserialize(layout_data)
1933-
self._undo_stack.clear()
1938+
self.deserialize_session(
1939+
layout_data,
1940+
clear_session=False,
1941+
clear_undo_stack=clear_undo_stack
1942+
)
19341943
self._model.session = file_path
19351944

19361945
self.session_changed.emit(file_path)
19371946

19381947
def copy_nodes(self, nodes=None):
19391948
"""
1940-
Copy nodes to the clipboard.
1949+
Copy nodes to the clipboard as a JSON formatted ``str``.
19411950
19421951
See Also:
19431952
:meth:`NodeGraph.cut_nodes`
@@ -1959,7 +1968,7 @@ def copy_nodes(self, nodes=None):
19591968

19601969
def cut_nodes(self, nodes=None):
19611970
"""
1962-
Cut nodes to the clipboard.
1971+
Cut nodes to the clipboard as a JSON formatted ``str``.
19631972
19641973
Note:
19651974
This function doesn't trigger the
@@ -2245,7 +2254,7 @@ def auto_layout_nodes(self, nodes=None, down_stream=True, start_nodes=None):
22452254
# convenience dialog functions.
22462255
# --------------------------------------------------------------------------
22472256

2248-
def question_dialog(self, text, title='Node Graph'):
2257+
def question_dialog(self, text, title='Node Graph', parent=None):
22492258
"""
22502259
Prompts a question open dialog with ``"Yes"`` and ``"No"`` buttons in
22512260
the node graph.
@@ -2257,13 +2266,14 @@ def question_dialog(self, text, title='Node Graph'):
22572266
Args:
22582267
text (str): question text.
22592268
title (str): dialog window title.
2269+
parent (QtWidgets.QObject): override dialog parent. (optional)
22602270
22612271
Returns:
22622272
bool: true if user clicked yes.
22632273
"""
2264-
return self._viewer.question_dialog(text, title)
2274+
return self._viewer.question_dialog(text, title, parent)
22652275

2266-
def message_dialog(self, text, title='Node Graph'):
2276+
def message_dialog(self, text, title='Node Graph', parent=None):
22672277
"""
22682278
Prompts a file open dialog in the node graph.
22692279
@@ -2274,10 +2284,11 @@ def message_dialog(self, text, title='Node Graph'):
22742284
Args:
22752285
text (str): message text.
22762286
title (str): dialog window title.
2287+
parent (QtWidgets.QObject): override dialog parent. (optional)
22772288
"""
2278-
self._viewer.message_dialog(text, title)
2289+
self._viewer.message_dialog(text, title, parent)
22792290

2280-
def load_dialog(self, current_dir=None, ext=None):
2291+
def load_dialog(self, current_dir=None, ext=None, parent=None):
22812292
"""
22822293
Prompts a file open dialog in the node graph.
22832294
@@ -2288,13 +2299,14 @@ def load_dialog(self, current_dir=None, ext=None):
22882299
Args:
22892300
current_dir (str): path to a directory.
22902301
ext (str): custom file type extension (default: ``"json"``)
2302+
parent (QtWidgets.QObject): override dialog parent. (optional)
22912303
22922304
Returns:
22932305
str: selected file path.
22942306
"""
2295-
return self._viewer.load_dialog(current_dir, ext)
2307+
return self._viewer.load_dialog(current_dir, ext, parent)
22962308

2297-
def save_dialog(self, current_dir=None, ext=None):
2309+
def save_dialog(self, current_dir=None, ext=None, parent=None):
22982310
"""
22992311
Prompts a file save dialog in the node graph.
23002312
@@ -2305,11 +2317,12 @@ def save_dialog(self, current_dir=None, ext=None):
23052317
Args:
23062318
current_dir (str): path to a directory.
23072319
ext (str): custom file type extension (default: ``"json"``)
2320+
parent (QtWidgets.QObject): override dialog parent. (optional)
23082321
23092322
Returns:
23102323
str: selected file path.
23112324
"""
2312-
return self._viewer.save_dialog(current_dir, ext)
2325+
return self._viewer.save_dialog(current_dir, ext, parent)
23132326

23142327
# group node / sub graph.
23152328
# --------------------------------------------------------------------------

NodeGraphQt/pkg_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/python
22
# -*- coding: utf-8 -*-
3-
__version__ = '0.6.18'
3+
__version__ = '0.6.19'
44
__status__ = 'Work in Progress'
55
__license__ = 'MIT'
66

NodeGraphQt/widgets/dialogs.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
_current_user_directory = os.path.expanduser('~')
66

77

8-
def set_dir(file):
8+
def _set_dir(file):
99
global _current_user_directory
1010
if os.path.isdir(file):
1111
_current_user_directory = file
@@ -24,7 +24,7 @@ def getSaveFileName(parent=None, title='Save File', file_dir=None,
2424
parent, title, file_dir, ext_filter)
2525
file = file_dlg[0] or None
2626
if file:
27-
set_dir(file)
27+
_set_dir(file)
2828
return file_dlg
2929

3030
@staticmethod
@@ -36,23 +36,23 @@ def getOpenFileName(parent=None, title='Open File', file_dir=None,
3636
parent, title, file_dir, ext_filter)
3737
file = file_dlg[0] or None
3838
if file:
39-
set_dir(file)
39+
_set_dir(file)
4040
return file_dlg
4141

4242

4343
class BaseDialog(object):
4444

4545
@staticmethod
46-
def message_dialog(text='', title='Message'):
47-
dlg = QtWidgets.QMessageBox()
46+
def message_dialog(parent=None, text='', title='Message'):
47+
dlg = QtWidgets.QMessageBox(parent=parent)
4848
dlg.setWindowTitle(title)
4949
dlg.setInformativeText(text)
5050
dlg.setStandardButtons(QtWidgets.QMessageBox.Ok)
5151
dlg.exec_()
5252

5353
@staticmethod
54-
def question_dialog(text='', title='Are you sure?'):
55-
dlg = QtWidgets.QMessageBox()
54+
def question_dialog(parent=None, text='', title='Are you sure?'):
55+
dlg = QtWidgets.QMessageBox(parent=parent)
5656
dlg.setWindowTitle(title)
5757
dlg.setInformativeText(text)
5858
dlg.setStandardButtons(

NodeGraphQt/widgets/viewer.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,70 +1224,82 @@ def context_menus(self):
12241224
"""
12251225
return {'graph': self._ctx_graph_menu, 'nodes': self._ctx_node_menu}
12261226

1227-
def question_dialog(self, text, title='Node Graph'):
1227+
def question_dialog(self, text, title='Node Graph', parent=None):
12281228
"""
12291229
Prompt node viewer question dialog widget with "yes", "no" buttons.
12301230
12311231
Args:
12321232
text (str): dialog text.
12331233
title (str): dialog window title.
1234+
parent (QtWidgets.QObject): override dialog parent. (optional)
12341235
12351236
Returns:
12361237
bool: true if user click yes.
12371238
"""
1239+
parent = parent or self
1240+
12381241
self.clear_key_state()
1239-
return BaseDialog.question_dialog(text, title)
1242+
return BaseDialog.question_dialog(parent, text, title)
12401243

1241-
def message_dialog(self, text, title='Node Graph'):
1244+
def message_dialog(self, text, title='Node Graph', parent=None):
12421245
"""
12431246
Prompt node viewer message dialog widget with "ok" button.
12441247
12451248
Args:
12461249
text (str): dialog text.
12471250
title (str): dialog window title.
1251+
parent (QtWidgets.QObject): override dialog parent. (optional)
12481252
"""
1253+
parent = parent or self
1254+
12491255
self.clear_key_state()
1250-
BaseDialog.message_dialog(text, title)
1256+
BaseDialog.message_dialog(parent, text, title)
12511257

1252-
def load_dialog(self, current_dir=None, ext=None):
1258+
def load_dialog(self, current_dir=None, ext=None, parent=None):
12531259
"""
12541260
Prompt node viewer file load dialog widget.
12551261
12561262
Args:
12571263
current_dir (str): directory path starting point. (optional)
12581264
ext (str): custom file extension filter type. (optional)
1265+
parent (QtWidgets.QObject): override dialog parent. (optional)
12591266
12601267
Returns:
12611268
str: selected file path.
12621269
"""
1270+
parent = parent or self
1271+
12631272
self.clear_key_state()
12641273
ext = '*{} '.format(ext) if ext else ''
12651274
ext_filter = ';;'.join([
12661275
'Node Graph ({}*json)'.format(ext), 'All Files (*)'
12671276
])
12681277
file_dlg = FileDialog.getOpenFileName(
1269-
self, 'Open File', current_dir, ext_filter)
1278+
parent, 'Open File', current_dir, ext_filter)
12701279
file = file_dlg[0] or None
12711280
return file
12721281

1273-
def save_dialog(self, current_dir=None, ext=None):
1282+
def save_dialog(self, current_dir=None, ext=None, parent=None):
12741283
"""
12751284
Prompt node viewer file save dialog widget.
12761285
12771286
Args:
12781287
current_dir (str): directory path starting point. (optional)
12791288
ext (str): custom file extension filter type. (optional)
1289+
parent (QtWidgets.QObject): override dialog parent. (optional)
12801290
12811291
Returns:
12821292
str: selected file path.
12831293
"""
1294+
parent = parent or self
1295+
12841296
self.clear_key_state()
12851297
ext_label = '*{} '.format(ext) if ext else ''
12861298
ext_type = '.{}'.format(ext) if ext else '.json'
12871299
ext_map = {'Node Graph ({}*json)'.format(ext_label): ext_type,
12881300
'All Files (*)': ''}
12891301
file_dlg = FileDialog.getSaveFileName(
1290-
self, 'Save Session', current_dir, ';;'.join(ext_map.keys()))
1302+
parent, 'Save Session', current_dir, ';;'.join(ext_map.keys()))
12911303
file_path = file_dlg[0]
12921304
if not file_path:
12931305
return

0 commit comments

Comments
 (0)