From 079333b3d7332a3e943da7219e8d2ac9b412b731 Mon Sep 17 00:00:00 2001 From: Thiago Franco de Moraes Date: Thu, 10 Jun 2021 16:47:55 -0300 Subject: [PATCH] Showing error message when trying to save project inside a folder without write permission --- invesalius/control.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/invesalius/control.py b/invesalius/control.py index 2e6ff9f..bf1fe66 100644 --- a/invesalius/control.py +++ b/invesalius/control.py @@ -256,10 +256,7 @@ class Controller(): if saveas or session.temp_item: proj = prj.Project() filepath, compress = dialog.ShowSaveAsProjectDialog(proj.name) - if filepath: - #session.RemoveTemp() - session.OpenProject(filepath) - else: + if not filepath: return else: proj = prj.Project() @@ -364,7 +361,6 @@ class Controller(): session = ses.Session() if path: dirpath, filename = os.path.split(path) - session.SaveProject((dirpath, filename)) else: dirpath, filename = session.project_path @@ -372,9 +368,22 @@ class Controller(): filename = utils.decode(filename, const.FS_ENCODE) proj = prj.Project() - prj.Project().SavePlistProject(dirpath, filename, compress) + try: + prj.Project().SavePlistProject(dirpath, filename, compress) + except PermissionError as err: + if wx.GetApp() is None: + print("Error: Permission denied, you don't have permission to write at {}".format(dirpath)) + else: + dlg = dialogs.ErrorMessageBox( + None, + "Save project error", + "It was not possible to save because you don't have permission to write at {}\n{}".format(dirpath, err) + ) + dlg.ShowModal() + dlg.Destroy() + else: + session.SaveProject((dirpath, filename)) - session.SaveProject() Publisher.sendMessage('End busy cursor') def CloseProject(self): -- libgit2 0.21.2