Commit ddef6e52bc39e0097d7ba4fdf292d02d578c7747

Authored by Thiago Franco de Moraes
1 parent 7733f91d

Better check on open and close project

invesalius/control.py
@@ -155,7 +155,8 @@ class Controller(): @@ -155,7 +155,8 @@ class Controller():
155 # Open project 155 # Open project
156 filepath = dialog.ShowOpenProjectDialog() 156 filepath = dialog.ShowOpenProjectDialog()
157 if filepath: 157 if filepath:
158 - self.CloseProject() 158 + if session.IsOpen():
  159 + self.CloseProject()
159 self.OpenProject(filepath) 160 self.OpenProject(filepath)
160 161
161 def ShowDialogSaveProject(self, saveas=False): 162 def ShowDialogSaveProject(self, saveas=False):
@@ -195,7 +196,6 @@ class Controller(): @@ -195,7 +196,6 @@ class Controller():
195 Publisher.sendMessage("Enable state project", False) 196 Publisher.sendMessage("Enable state project", False)
196 Publisher.sendMessage('Set project name') 197 Publisher.sendMessage('Set project name')
197 Publisher.sendMessage("Stop Config Recording") 198 Publisher.sendMessage("Stop Config Recording")
198 - Publisher.sendMessage("Exit")  
199 elif answer == 1: 199 elif answer == 1:
200 self.ShowDialogSaveProject() 200 self.ShowDialogSaveProject()
201 utils.debug("Save changes and close") 201 utils.debug("Save changes and close")
@@ -203,7 +203,6 @@ class Controller(): @@ -203,7 +203,6 @@ class Controller():
203 Publisher.sendMessage("Enable state project", False) 203 Publisher.sendMessage("Enable state project", False)
204 Publisher.sendMessage('Set project name') 204 Publisher.sendMessage('Set project name')
205 Publisher.sendMessage("Stop Config Recording") 205 Publisher.sendMessage("Stop Config Recording")
206 - Publisher.sendMessage("Exit")  
207 elif answer == -1: 206 elif answer == -1:
208 utils.debug("Cancel") 207 utils.debug("Cancel")
209 else: 208 else:
@@ -211,11 +210,9 @@ class Controller(): @@ -211,11 +210,9 @@ class Controller():
211 Publisher.sendMessage("Enable state project", False) 210 Publisher.sendMessage("Enable state project", False)
212 Publisher.sendMessage('Set project name') 211 Publisher.sendMessage('Set project name')
213 Publisher.sendMessage("Stop Config Recording") 212 Publisher.sendMessage("Stop Config Recording")
214 - Publisher.sendMessage("Exit")  
215 213
216 else: 214 else:
217 Publisher.sendMessage('Stop Config Recording') 215 Publisher.sendMessage('Stop Config Recording')
218 - Publisher.sendMessage('Exit')  
219 216
220 217
221 ########################### 218 ###########################
@@ -234,7 +231,8 @@ class Controller(): @@ -234,7 +231,8 @@ class Controller():
234 answer = dialog.SaveChangesDialog2(filename) 231 answer = dialog.SaveChangesDialog2(filename)
235 if answer: 232 if answer:
236 self.ShowDialogSaveProject() 233 self.ShowDialogSaveProject()
237 - self.CloseProject() 234 + if session.IsOpen():
  235 + self.CloseProject()
238 self.OpenProject(filepath) 236 self.OpenProject(filepath)
239 else: 237 else:
240 dialog.InexistentPath(filepath) 238 dialog.InexistentPath(filepath)
invesalius/gui/frame.py
@@ -353,6 +353,7 @@ class Frame(wx.Frame): @@ -353,6 +353,7 @@ class Frame(wx.Frame):
353 Close all project data. 353 Close all project data.
354 """ 354 """
355 Publisher.sendMessage('Close Project') 355 Publisher.sendMessage('Close Project')
  356 + Publisher.sendMessage('Exit')
356 357
357 def OnMenuClick(self, evt): 358 def OnMenuClick(self, evt):
358 """ 359 """
invesalius/session.py
@@ -70,6 +70,10 @@ class Session(object): @@ -70,6 +70,10 @@ class Session(object):
70 self.rendering = 0 70 self.rendering = 0
71 self.WriteSessionFile() 71 self.WriteSessionFile()
72 72
  73 + def IsOpen(self):
  74 + import constants as const
  75 + return self.project_status != const.PROJ_CLOSE
  76 +
73 def SaveConfigFileBackup(self): 77 def SaveConfigFileBackup(self):
74 path = os.path.join(self.homedir , 78 path = os.path.join(self.homedir ,
75 '.invesalius', 'config.cfg') 79 '.invesalius', 'config.cfg')