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