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 | 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
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') | ... | ... |