Commit ddef6e52bc39e0097d7ba4fdf292d02d578c7747
1 parent
7733f91d
Exists in
master
and in
35 other branches
Better check on open and close project
Showing
3 changed files
with
9 additions
and
6 deletions
Show diff stats
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') |