From 6ebb9526f140e5fd7dca55168161fd7eed848256 Mon Sep 17 00:00:00 2001 From: Denis Tereshkin Date: Sun, 1 Apr 2018 10:47:45 +0700 Subject: [PATCH] Save as --- src/nailab/ui/applicationwindow.py | 12 ++++++++++++ src/nailab/ui/tabmanager.py | 9 ++++++++- ui/nailab.glade | 3 ++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/nailab/ui/applicationwindow.py b/src/nailab/ui/applicationwindow.py index 274b64d..4bf42ee 100644 --- a/src/nailab/ui/applicationwindow.py +++ b/src/nailab/ui/applicationwindow.py @@ -20,6 +20,7 @@ class ApplicationWindow: 'on_ApplicationWindow_delete_event' : Gtk.main_quit, 'on_OpenFile' : self.open_file, 'on_menuSave' : self.save_file, + 'on_menuSaveAs' : self.save_file_as, 'on_StrategyExecute' : self.strategy_execute } @@ -40,6 +41,17 @@ class ApplicationWindow: def save_file(self, arg): self.tab_manager.save_current() + def save_file_as(self, arg): + dlg = Gtk.FileChooserDialog('Save file', self.window, Gtk.FileChooserAction.SAVE, + (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, + Gtk.STOCK_SAVE, Gtk.ResponseType.OK)) + result = dlg.run() + + if result == Gtk.ResponseType.OK: + self.tab_manager.save_current_as(dlg.get_filename()) + + dlg.destroy() + def strategy_execute(self, arg): sel = self.tv_datasources.get_selection() model, rows = sel.get_selected_rows() diff --git a/src/nailab/ui/tabmanager.py b/src/nailab/ui/tabmanager.py index 8f9fec7..f22f669 100644 --- a/src/nailab/ui/tabmanager.py +++ b/src/nailab/ui/tabmanager.py @@ -87,7 +87,14 @@ class TabManager(GObject.Object): with open(self.source_paths[k], 'w') as f: f.write(text) - + def save_current_as(self, path): + index = self.notebook.get_current_page() + w = self.notebook.get_nth_page(index) + for k, v in self.widgets.items(): + if v == w: + text = self.source_controllers[k].get_source_text() + with open(path, 'w') as f: + f.write(text) def _init_sourceeditor(self): scroll = Gtk.ScrolledWindow() diff --git a/ui/nailab.glade b/ui/nailab.glade index c83d92e..ee02885 100644 --- a/ui/nailab.glade +++ b/ui/nailab.glade @@ -125,12 +125,13 @@ - + gtk-save-as True False True True +