diff options
Diffstat (limited to 'grc/src/gui')
-rw-r--r-- | grc/src/gui/ActionHandler.py | 9 | ||||
-rw-r--r-- | grc/src/gui/MainWindow.py | 2 | ||||
-rw-r--r-- | grc/src/gui/NotebookPage.py | 9 |
3 files changed, 17 insertions, 3 deletions
diff --git a/grc/src/gui/ActionHandler.py b/grc/src/gui/ActionHandler.py index 7558d16ae..cc41e937c 100644 --- a/grc/src/gui/ActionHandler.py +++ b/grc/src/gui/ActionHandler.py @@ -328,7 +328,10 @@ class ActionHandler: elif state == Actions.FLOW_GRAPH_CLOSE: self.main_window.close_page() elif state == Actions.FLOW_GRAPH_SAVE: - if not self.get_page().get_file_path(): self.handle_states(Actions.FLOW_GRAPH_SAVE_AS) + #read-only or undefines file path, do save-as + if self.get_page().get_read_only() or not self.get_page().get_file_path(): + self.handle_states(Actions.FLOW_GRAPH_SAVE_AS) + #otherwise try to save else: try: ParseXML.to_file(self.get_flow_graph().export_data(), self.get_page().get_file_path()) @@ -338,12 +341,12 @@ class ActionHandler: self.get_page().set_saved(False) elif state == Actions.FLOW_GRAPH_SAVE_AS: file_path = SaveFlowGraphFileDialog(self.get_page().get_file_path()).run() - if file_path != None: + if file_path is not None: self.get_page().set_file_path(file_path) self.handle_states(Actions.FLOW_GRAPH_SAVE) elif state == Actions.FLOW_GRAPH_SCREEN_CAPTURE: file_path = SaveImageFileDialog(self.get_page().get_file_path()).run() - if file_path != None: + if file_path is not None: pixmap = self.get_flow_graph().get_drawing_area().pixmap width, height = pixmap.get_size() pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, width, height) diff --git a/grc/src/gui/MainWindow.py b/grc/src/gui/MainWindow.py index b86ec4cbd..95a362688 100644 --- a/grc/src/gui/MainWindow.py +++ b/grc/src/gui/MainWindow.py @@ -246,6 +246,7 @@ class MainWindow(gtk.Window): ' - Editing: ', (self.get_page().get_file_path() or NEW_FLOGRAPH_TITLE), (self.get_page().get_saved() and ' ' or '*'), #blank must be non empty + (self.get_page().get_read_only() and ' (read-only)' or ''), ) ) else: title = MAIN_WINDOW_PREFIX + ' - Editor ' @@ -262,6 +263,7 @@ class MainWindow(gtk.Window): page.set_text(''.join(( (title or NEW_FLOGRAPH_TITLE), (page.get_saved() and ' ' or '*'), #blank must be non empty + (page.get_read_only() and ' (ro)' or ''), ) ) ) diff --git a/grc/src/gui/NotebookPage.py b/grc/src/gui/NotebookPage.py index a25243b18..e2e627a2d 100644 --- a/grc/src/gui/NotebookPage.py +++ b/grc/src/gui/NotebookPage.py @@ -135,6 +135,15 @@ class NotebookPage(gtk.HBox): """ return self._flow_graph + def get_read_only(self): + """ + Get the read-only state of the file. + Always false for empty path. + @return true for read-only + """ + if not self.get_file_path(): return False + return not os.access(self.get_file_path(), os.W_OK) + def get_file_path(self): """ Get the file path for the flow graph. |