Skip to content

Commit a4e0a42

Browse files
authored
fix #75 : display a message when saving or loading a file failed (#80)
fix #75 : catch exceptions when saving or loading files and display a QMessageBox instead
1 parent 4506af9 commit a4e0a42

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

larray_editor/editor.py

+26-17
Original file line numberDiff line numberDiff line change
@@ -539,23 +539,29 @@ def new(self):
539539
self.statusBar().showMessage("Viewer has been reset", 4000)
540540

541541
def _open_file(self, filepath):
542-
self._reset()
543542
session = Session()
544543
if '.csv' in filepath:
545544
filepath = [filepath]
546545
if isinstance(filepath, (list, tuple)):
547-
session.load(None, filepath)
548-
dirname = os.path.dirname(filepath[0])
549-
basenames = [os.path.basename(fpath) for fpath in filepath]
550-
self.set_current_file(dirname)
551-
self.statusBar().showMessage("CSV files {} loaded".format(' ,'.join(basenames)), 4000)
546+
current_file_name = os.path.dirname(filepath[0])
547+
display_name = ','.join(os.path.basename(fpath) for fpath in filepath)
548+
names = filepath
549+
filepath = None
552550
else:
553-
session.load(filepath)
554-
self.set_current_file(filepath)
555-
self.statusBar().showMessage("File {} loaded".format(os.path.basename(filepath)), 4000)
556-
self._add_arrays(session)
557-
self._listwidget.setCurrentRow(0)
558-
self.unsaved_modifications = False
551+
names = None
552+
current_file_name = filepath
553+
display_name = os.path.basename(filepath)
554+
try:
555+
session.load(filepath, names)
556+
self._reset()
557+
self.set_current_file(current_file_name)
558+
self._add_arrays(session)
559+
self._listwidget.setCurrentRow(0)
560+
self.unsaved_modifications = False
561+
self.statusBar().showMessage("Loaded: {}".format(display_name), 4000)
562+
except Exception as e:
563+
QMessageBox.critical(self, "Error", "Something went wrong during load of file(s) {}:\n{}"
564+
.format(display_name, e))
559565

560566
def open(self):
561567
if self._ask_to_save_if_unsaved_modifications():
@@ -583,11 +589,14 @@ def open_recent_file(self):
583589
QMessageBox.warning(self, "Warning", "File {} could not be found".format(filepath))
584590

585591
def _save_data(self, filepath):
586-
session = Session({k: v for k, v in self.data.items() if self._display_in_grid(k, v)})
587-
session.save(filepath)
588-
self.set_current_file(filepath)
589-
self.unsaved_modifications = False
590-
self.statusBar().showMessage("Arrays saved in file {}".format(filepath), 4000)
592+
try:
593+
session = Session({k: v for k, v in self.data.items() if self._display_in_grid(k, v)})
594+
session.save(filepath)
595+
self.set_current_file(filepath)
596+
self.unsaved_modifications = False
597+
self.statusBar().showMessage("Arrays saved in file {}".format(filepath), 4000)
598+
except Exception as e:
599+
QMessageBox.critical(self, "Error", "Something went wrong during save in file {}:\n{}".format(filepath, e))
591600

592601
def save(self):
593602
"""

0 commit comments

Comments
 (0)