diff --git a/invesalius/control.py b/invesalius/control.py index c9c62a1..40c4b7d 100644 --- a/invesalius/control.py +++ b/invesalius/control.py @@ -155,7 +155,8 @@ class Controller(): # Open project filepath = dialog.ShowOpenProjectDialog() if filepath: - self.CloseProject() + if session.IsOpen(): + self.CloseProject() self.OpenProject(filepath) def ShowDialogSaveProject(self, saveas=False): @@ -195,7 +196,6 @@ class Controller(): Publisher.sendMessage("Enable state project", False) Publisher.sendMessage('Set project name') Publisher.sendMessage("Stop Config Recording") - Publisher.sendMessage("Exit") elif answer == 1: self.ShowDialogSaveProject() utils.debug("Save changes and close") @@ -203,7 +203,6 @@ class Controller(): Publisher.sendMessage("Enable state project", False) Publisher.sendMessage('Set project name') Publisher.sendMessage("Stop Config Recording") - Publisher.sendMessage("Exit") elif answer == -1: utils.debug("Cancel") else: @@ -211,11 +210,9 @@ class Controller(): Publisher.sendMessage("Enable state project", False) Publisher.sendMessage('Set project name') Publisher.sendMessage("Stop Config Recording") - Publisher.sendMessage("Exit") else: Publisher.sendMessage('Stop Config Recording') - Publisher.sendMessage('Exit') ########################### @@ -234,7 +231,8 @@ class Controller(): answer = dialog.SaveChangesDialog2(filename) if answer: self.ShowDialogSaveProject() - self.CloseProject() + if session.IsOpen(): + self.CloseProject() self.OpenProject(filepath) else: dialog.InexistentPath(filepath) diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py index dc0db3c..e538b1a 100644 --- a/invesalius/gui/frame.py +++ b/invesalius/gui/frame.py @@ -353,6 +353,7 @@ class Frame(wx.Frame): Close all project data. """ Publisher.sendMessage('Close Project') + Publisher.sendMessage('Exit') def OnMenuClick(self, evt): """ diff --git a/invesalius/session.py b/invesalius/session.py index 9a85aae..0be0571 100644 --- a/invesalius/session.py +++ b/invesalius/session.py @@ -70,6 +70,10 @@ class Session(object): self.rendering = 0 self.WriteSessionFile() + def IsOpen(self): + import constants as const + return self.project_status != const.PROJ_CLOSE + def SaveConfigFileBackup(self): path = os.path.join(self.homedir , '.invesalius', 'config.cfg') -- libgit2 0.21.2