Commit d0e768b2121db6e6fb80e8b1f02a93ece91e4df6

Authored by Paulo Henrique Junqueira Amorim
1 parent 79e73e8e

ENH: Display save dialog in the close project not saved, fixed cancel button

invesalius/control.py
@@ -163,12 +163,12 @@ class Controller(): @@ -163,12 +163,12 @@ class Controller():
163 if (filename): 163 if (filename):
164 if (st == const.PROJ_NEW) or (st == const.PROJ_CHANGE): 164 if (st == const.PROJ_NEW) or (st == const.PROJ_CHANGE):
165 answer = dialog.SaveChangesDialog(filename, self.frame) 165 answer = dialog.SaveChangesDialog(filename, self.frame)
166 -  
167 if not answer: 166 if not answer:
168 debug("Close without changes") 167 debug("Close without changes")
169 self.CloseProject() 168 self.CloseProject()
170 ps.Publisher().sendMessage("Enable state project", False) 169 ps.Publisher().sendMessage("Enable state project", False)
171 ps.Publisher().sendMessage('Set project name') 170 ps.Publisher().sendMessage('Set project name')
  171 + ps.Publisher().sendMessage("Stop Config Recording")
172 ps.Publisher().sendMessage('Close Window') 172 ps.Publisher().sendMessage('Close Window')
173 elif answer == 1: 173 elif answer == 1:
174 self.ShowDialogSaveProject() 174 self.ShowDialogSaveProject()
@@ -176,13 +176,16 @@ class Controller(): @@ -176,13 +176,16 @@ class Controller():
176 self.CloseProject() 176 self.CloseProject()
177 ps.Publisher().sendMessage("Enable state project", False) 177 ps.Publisher().sendMessage("Enable state project", False)
178 ps.Publisher().sendMessage('Set project name') 178 ps.Publisher().sendMessage('Set project name')
  179 + ps.Publisher().sendMessage("Stop Config Recording")
179 ps.Publisher().sendMessage('Close Window') 180 ps.Publisher().sendMessage('Close Window')
  181 +
180 elif answer == -1: 182 elif answer == -1:
181 debug("Cancel") 183 debug("Cancel")
182 else: 184 else:
183 self.CloseProject() 185 self.CloseProject()
184 ps.Publisher().sendMessage("Enable state project", False) 186 ps.Publisher().sendMessage("Enable state project", False)
185 ps.Publisher().sendMessage('Set project name') 187 ps.Publisher().sendMessage('Set project name')
  188 + ps.Publisher().sendMessage("Stop Config Recording")
186 ps.Publisher().sendMessage('Close Window') 189 ps.Publisher().sendMessage('Close Window')
187 190
188 else: 191 else:
invesalius/gui/dialogs.py
@@ -376,14 +376,11 @@ def SaveChangesDialog(filename, parent): @@ -376,14 +376,11 @@ def SaveChangesDialog(filename, parent):
376 dlg = wx.MessageDialog(None, msg, "InVesalius 3", 376 dlg = wx.MessageDialog(None, msg, "InVesalius 3",
377 wx.ICON_QUESTION | wx.YES_NO | wx.CANCEL) 377 wx.ICON_QUESTION | wx.YES_NO | wx.CANCEL)
378 378
379 - dlg.Bind(wx.EVT_LEFT_UP, teste)  
380 -  
381 try: 379 try:
382 answer = dlg.ShowModal() 380 answer = dlg.ShowModal()
383 except(wx._core.PyAssertionError): #TODO: FIX win64 381 except(wx._core.PyAssertionError): #TODO: FIX win64
384 answer = wx.ID_YES 382 answer = wx.ID_YES
385 383
386 -  
387 dlg.Destroy() 384 dlg.Destroy()
388 os.chdir(current_dir) 385 os.chdir(current_dir)
389 386
@@ -394,10 +391,6 @@ def SaveChangesDialog(filename, parent): @@ -394,10 +391,6 @@ def SaveChangesDialog(filename, parent):
394 else: 391 else:
395 return -1 392 return -1
396 393
397 -def teste(evt):  
398 - print evt  
399 - print "ENTROUUUUUUUUUUUUUUUUUUUUUUUUUUU"  
400 -  
401 def SaveChangesDialog2(filename): 394 def SaveChangesDialog2(filename):
402 current_dir = os.path.abspath(".") 395 current_dir = os.path.abspath(".")
403 msg = _("The project %s has been modified.\nSave changes?")%filename 396 msg = _("The project %s has been modified.\nSave changes?")%filename
invesalius/gui/frame.py
@@ -120,13 +120,11 @@ class Frame(wx.Frame): @@ -120,13 +120,11 @@ class Frame(wx.Frame):
120 def __bind_events_wx(self): 120 def __bind_events_wx(self):
121 self.Bind(wx.EVT_SIZE, self.OnSize) 121 self.Bind(wx.EVT_SIZE, self.OnSize)
122 self.Bind(wx.EVT_MENU, self.OnMenuClick) 122 self.Bind(wx.EVT_MENU, self.OnMenuClick)
123 - self.Bind(wx.EVT_CLOSE, self.CloseWindow) 123 + self.Bind(wx.EVT_CLOSE, self.OnClose)
124 #self.Bind(wx.EVT_CLOSE, self.OnExit) 124 #self.Bind(wx.EVT_CLOSE, self.OnExit)
125 125
126 - def CloseWindow(self, evt): 126 + def OnClose(self, evt):
127 ps.Publisher().sendMessage('Close Project') 127 ps.Publisher().sendMessage('Close Project')
128 - ps.Publisher().sendMessage("Stop Config Recording")  
129 - self.Destroy()  
130 128
131 def __init_aui(self): 129 def __init_aui(self):
132 130