diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2015-03-24 12:05:39 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2015-04-02 09:20:24 +0200 |
commit | 10a434c2dacd64e28a5da7a0881d8fc957983ea7 (patch) | |
tree | b669c8a955018db76c2b54b2a185dbb48a3896cb | |
parent | 212982ca906b136ab0e4bb7bb47b5588c75de61a (diff) |
grc: close unsaved pages first (for cancel save option)
-rw-r--r-- | grc/gui/MainWindow.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/grc/gui/MainWindow.py b/grc/gui/MainWindow.py index 2d48504049..07d0661e94 100644 --- a/grc/gui/MainWindow.py +++ b/grc/gui/MainWindow.py @@ -209,9 +209,11 @@ class MainWindow(gtk.Window): open_files = filter(lambda file: file, self._get_files()) #filter blank files open_file = self.get_page().get_file_path() #close each page - for page in self.get_pages(): + for page in sorted(self.get_pages(), key=lambda p: p.get_saved()): self.page_to_be_closed = page - self.close_page(False) + closed = self.close_page(False) + if not closed: + break if self.notebook.get_n_pages(): return False #save state before closing Preferences.files_open(open_files) @@ -242,16 +244,17 @@ class MainWindow(gtk.Window): Actions.FLOW_GRAPH_SAVE() #try to save if not self.page_to_be_closed.get_saved(): #still unsaved? self.page_to_be_closed = None #set the page to be closed back to None - return + return False elif response == gtk.RESPONSE_CANCEL: self.page_to_be_closed = None - return + return False #stop the flow graph if executing if self.page_to_be_closed.get_proc(): Actions.FLOW_GRAPH_KILL() #remove the page self.notebook.remove_page(self.notebook.page_num(self.page_to_be_closed)) if ensure and self.notebook.get_n_pages() == 0: self.new_page() #no pages, make a new one self.page_to_be_closed = None #set the page to be closed back to None + return True ############################################################ # Misc |