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