Commit 079333b3d7332a3e943da7219e8d2ac9b412b731
1 parent
ce4b93a1
Exists in
master
Showing error message when trying to save project inside a folder without write permission
Showing
1 changed file
with
16 additions
and
7 deletions
Show diff stats
invesalius/control.py
@@ -256,10 +256,7 @@ class Controller(): | @@ -256,10 +256,7 @@ class Controller(): | ||
256 | if saveas or session.temp_item: | 256 | if saveas or session.temp_item: |
257 | proj = prj.Project() | 257 | proj = prj.Project() |
258 | filepath, compress = dialog.ShowSaveAsProjectDialog(proj.name) | 258 | filepath, compress = dialog.ShowSaveAsProjectDialog(proj.name) |
259 | - if filepath: | ||
260 | - #session.RemoveTemp() | ||
261 | - session.OpenProject(filepath) | ||
262 | - else: | 259 | + if not filepath: |
263 | return | 260 | return |
264 | else: | 261 | else: |
265 | proj = prj.Project() | 262 | proj = prj.Project() |
@@ -364,7 +361,6 @@ class Controller(): | @@ -364,7 +361,6 @@ class Controller(): | ||
364 | session = ses.Session() | 361 | session = ses.Session() |
365 | if path: | 362 | if path: |
366 | dirpath, filename = os.path.split(path) | 363 | dirpath, filename = os.path.split(path) |
367 | - session.SaveProject((dirpath, filename)) | ||
368 | else: | 364 | else: |
369 | dirpath, filename = session.project_path | 365 | dirpath, filename = session.project_path |
370 | 366 | ||
@@ -372,9 +368,22 @@ class Controller(): | @@ -372,9 +368,22 @@ class Controller(): | ||
372 | filename = utils.decode(filename, const.FS_ENCODE) | 368 | filename = utils.decode(filename, const.FS_ENCODE) |
373 | 369 | ||
374 | proj = prj.Project() | 370 | proj = prj.Project() |
375 | - prj.Project().SavePlistProject(dirpath, filename, compress) | 371 | + try: |
372 | + prj.Project().SavePlistProject(dirpath, filename, compress) | ||
373 | + except PermissionError as err: | ||
374 | + if wx.GetApp() is None: | ||
375 | + print("Error: Permission denied, you don't have permission to write at {}".format(dirpath)) | ||
376 | + else: | ||
377 | + dlg = dialogs.ErrorMessageBox( | ||
378 | + None, | ||
379 | + "Save project error", | ||
380 | + "It was not possible to save because you don't have permission to write at {}\n{}".format(dirpath, err) | ||
381 | + ) | ||
382 | + dlg.ShowModal() | ||
383 | + dlg.Destroy() | ||
384 | + else: | ||
385 | + session.SaveProject((dirpath, filename)) | ||
376 | 386 | ||
377 | - session.SaveProject() | ||
378 | Publisher.sendMessage('End busy cursor') | 387 | Publisher.sendMessage('End busy cursor') |
379 | 388 | ||
380 | def CloseProject(self): | 389 | def CloseProject(self): |