[gedit-plugins/sessionsaver] Save on same open session
- From: Jordi Mas <jmas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-plugins/sessionsaver] Save on same open session
- Date: Thu, 4 Jul 2019 06:51:03 +0000 (UTC)
commit d1c78e9c5e3c6e54693483686ed199ff12fc074c
Author: Jordi Mas <jmas softcatala org>
Date: Wed Jul 3 16:10:44 2019 +0200
Save on same open session
plugins/sessionsaver/sessionsaver/dialogs.py | 23 ++++++++++++++++++----
.../sessionsaver/sessionsaver/windowactivable.py | 4 +++-
2 files changed, 22 insertions(+), 5 deletions(-)
---
diff --git a/plugins/sessionsaver/sessionsaver/dialogs.py b/plugins/sessionsaver/sessionsaver/dialogs.py
index d83ddf7..f8b80ee 100644
--- a/plugins/sessionsaver/sessionsaver/dialogs.py
+++ b/plugins/sessionsaver/sessionsaver/dialogs.py
@@ -85,11 +85,12 @@ class Dialog(object):
self.__del__()
class SaveSessionDialog(Dialog):
- def __init__(self, window, on_updated_sessions, sessions, data_dir):
+ def __init__(self, window, sessions, current_session, on_updated_sessions, data_dir):
super(SaveSessionDialog, self).__init__('save-session-dialog',
data_dir,
window)
+ self.NAME_COLUMN = 1
self.on_updated_sessions = on_updated_sessions
self.sessions = sessions
@@ -97,14 +98,28 @@ class SaveSessionDialog(Dialog):
self.combobox = self['session-name']
self.combobox.set_model(model)
- self.combobox.set_entry_text_column(1)
+ self.combobox.set_entry_text_column(self.NAME_COLUMN)
self.combobox.connect("changed", self.on_name_combo_changed)
+ if current_session is None:
+ self.on_name_combo_changed(self.combobox)
+ else:
+ self._set_combobox_active_by_name(current_session)
+
self.dialog.connect('response', self.on_response)
- self['save_button'].set_sensitive(False)
+
+ def _set_combobox_active_by_name(self, option_name):
+ model = self.combobox.get_model()
+ piter = model.get_iter_first()
+ while piter is not None:
+ if model.get_value(piter, self.NAME_COLUMN) == option_name:
+ self.combobox.set_active_iter(piter)
+ return True
+ piter = model.iter_next(piter)
+ return False
def on_name_combo_changed(self, combo):
- name = self.combobox.get_child().get_text()
+ name = combo.get_child().get_text()
self['save_button'].set_sensitive(len(name) > 0)
def on_response(self, dialog, response_id):
diff --git a/plugins/sessionsaver/sessionsaver/windowactivable.py
b/plugins/sessionsaver/sessionsaver/windowactivable.py
index e03b90b..60f8469 100644
--- a/plugins/sessionsaver/sessionsaver/windowactivable.py
+++ b/plugins/sessionsaver/sessionsaver/windowactivable.py
@@ -40,6 +40,7 @@ class SessionSaverWindowActivatable(GObject.Object, Gedit.WindowActivatable):
GObject.Object.__init__(self)
self.sessions = XMLSessionStore()
self.n_sessions = 0
+ self.current_session = None
def do_activate(self):
self._insert_menus()
@@ -86,7 +87,7 @@ class SessionSaverWindowActivatable(GObject.Object, Gedit.WindowActivatable):
def _on_save_session_action(self):
data_dir = SessionSaverAppActivatable.get_instance().plugin_info.get_data_dir()
- dialog = SaveSessionDialog(self.window, self.on_updated_sessions, self.sessions, data_dir)
+ dialog = SaveSessionDialog(self.window, self.sessions, self.current_session,
self.on_updated_sessions, data_dir)
dialog.run()
def on_updated_sessions(self):
@@ -107,3 +108,4 @@ class SessionSaverWindowActivatable(GObject.Object, Gedit.WindowActivatable):
window = self.window
Gedit.commands_load_locations(window, session.files, None, 0, 0)
+ self.current_session = session.name
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]