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