Commit 079333b3d7332a3e943da7219e8d2ac9b412b731

Authored by Thiago Franco de Moraes
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):