Skip to content

Commit 2ef763b

Browse files
committed
FEAT: warn when trying to save objects we cannot save
1 parent 2fa5ce0 commit 2ef763b

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

larray_editor/editor.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1408,8 +1408,31 @@ def open_recent_file(self):
14081408
QMessageBox.warning(self, "Warning", f"File {filepath} could not be found")
14091409

14101410
def _save_data(self, filepath):
1411+
CAN_BE_SAVED = (la.Array, la.Axis, la.Group)
1412+
in_var_list = {k: v for k, v in self.data.items()
1413+
if self._display_in_varlist(k, v)}
1414+
if not in_var_list:
1415+
QMessageBox.warning(self, "Warning", "Nothing to save")
1416+
return
1417+
1418+
to_save = {k: v for k, v in in_var_list.items()
1419+
if isinstance(v, CAN_BE_SAVED)}
1420+
if not to_save:
1421+
msg = ("Nothing can be saved because "
1422+
"all the currently loaded variables "
1423+
"are of types which are not supported for saving.")
1424+
QMessageBox.warning(self, "Warning: unsavable objects", msg)
1425+
return
1426+
1427+
unsaveable = in_var_list.keys() - to_save.keys()
1428+
if unsaveable:
1429+
object_names = ', '.join(sorted(unsaveable))
1430+
QMessageBox.warning(self, "Warning: unsavable objects",
1431+
"The following variables are of types which "
1432+
"are not supported for saving and will be "
1433+
f"ignored:\n\n{object_names}")
1434+
session = la.Session(to_save)
14111435
try:
1412-
session = la.Session({k: v for k, v in self.data.items() if self._display_in_varlist(k, v)})
14131436
session.save(filepath)
14141437
self.set_current_file(filepath)
14151438
self.edit_undo_stack.clear()

0 commit comments

Comments
 (0)