diff --git a/dev/tests/test_workspace_controller.py b/dev/tests/test_workspace_controller.py index 7345ccd..92b745a 100644 --- a/dev/tests/test_workspace_controller.py +++ b/dev/tests/test_workspace_controller.py @@ -250,7 +250,7 @@ def test_save_and_save_as_update_editor_state_and_tab_title(tmp_path): tabs = WorkspaceTabs([editor]) file_manager = SimpleNamespace( saved=[], - save_file=lambda path, text: file_manager.saved.append((path, text)), + save_file=lambda path, text: file_manager.saved.append((path, text)) or True, save_file_as=lambda text, parent=None: str(tmp_path / "saved_as.py"), ) window = SimpleNamespace(_tab_manager=tabs, _file_manager=file_manager) diff --git a/meadowpy/ui/controllers/workspace_controller.py b/meadowpy/ui/controllers/workspace_controller.py index aa550a4..7c6bb7c 100644 --- a/meadowpy/ui/controllers/workspace_controller.py +++ b/meadowpy/ui/controllers/workspace_controller.py @@ -148,9 +148,14 @@ def action_save(self) -> None: if not editor: return if editor.file_path: - self._file_manager.save_file(editor.file_path, editor.text()) - editor.setModified(False) - self._tab_manager.update_tab_title(self._tab_manager.currentIndex()) + if self._file_manager.save_file(editor.file_path, editor.text()): + editor.setModified(False) + self._tab_manager.update_tab_title(self._tab_manager.currentIndex()) + else: + QMessageBox.critical( + self.window, "Error", + f"Could not save file:\n{editor.file_path}", + ) else: self.action_save_as()