[gedit-plugins/sessionsaver] Save
- From: Jordi Mas <jmas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-plugins/sessionsaver] Save
- Date: Thu, 27 Jun 2019 14:18:08 +0000 (UTC)
commit c92280c4e96286940a4e8f070bb0c98aa12cb9d0
Author: Jordi Mas <jmas softcatala org>
Date: Thu Jun 27 13:06:27 2019 +0200
Save
plugins/sessionsaver/sessionsaver/__init__.py | 23 +++++++++++++++++++++--
plugins/sessionsaver/sessionsaver/dialogs.py | 2 +-
2 files changed, 22 insertions(+), 3 deletions(-)
---
diff --git a/plugins/sessionsaver/sessionsaver/__init__.py b/plugins/sessionsaver/sessionsaver/__init__.py
index 1f8b475..bb1f01c 100644
--- a/plugins/sessionsaver/sessionsaver/__init__.py
+++ b/plugins/sessionsaver/sessionsaver/__init__.py
@@ -34,12 +34,18 @@ try:
except:
_ = lambda s: s
+
+
class SessionSaverAppActivatable(GObject.Object, Gedit.AppActivatable):
app = GObject.Property(type=Gedit.App)
def __init__(self):
GObject.Object.__init__(self)
+ self.n_sessions = 0
+
+ global app_activable
+ app_activable = self
print("SessionSaverAppActivatable.__init__\n")
def do_activate(self):
@@ -58,10 +64,22 @@ class SessionSaverAppActivatable(GObject.Object, Gedit.AppActivatable):
print("_insert_session_menu\n")
self.sessions = XMLSessionStore()
+ n_sessions = len(self.sessions)
for i, session in enumerate(self.sessions):
session_id = 'win.session_%u'.format(i)
item = Gio.MenuItem.new(_("Recover '%s' session") % session.name, session_id)
self.menu_ext.prepend_menu_item(item)
+
+ def _remove_session_menu(self):
+ self.menu_ext.remove_items()
+ for i in range(self.n_sessions):
+ session_id = 'win.session_%u'.format(i)
+ print("_remove_session_menu. remove %s".format(session_id))
+ self.app.remove_accelerator(session_id, None)
+
+ def _update_session_menu(self):
+ self._remove_session_menu()
+ self._insert_session_menu()
class SessionSaverWindowActivatable(GObject.Object, Gedit.WindowActivatable, PeasGtk.Configurable):
@@ -102,12 +120,12 @@ class SessionSaverWindowActivatable(GObject.Object, Gedit.WindowActivatable, Pea
def on_manage_sessions_action(self):
print("on_manage_sessions_action\n")
- dialog = SessionManagerDialog(self, self.sessions)
+ dialog = SessionManagerDialog(app_activable, self.sessions)
dialog.run()
def on_save_session_action(self):
print("on_save_session_action\n")
- dialog = SaveSessionDialog(self.window, self, self.sessions)
+ dialog = SaveSessionDialog(self.window, app_activable, self.sessions)
dialog.run()
def _load_session(self, session):
@@ -124,3 +142,4 @@ class SessionSaverWindowActivatable(GObject.Object, Gedit.WindowActivatable, Pea
Gedit.commands_load_locations(window, session.files, None, 0, 0)
+
diff --git a/plugins/sessionsaver/sessionsaver/dialogs.py b/plugins/sessionsaver/sessionsaver/dialogs.py
index 1d428c0..a6235be 100644
--- a/plugins/sessionsaver/sessionsaver/dialogs.py
+++ b/plugins/sessionsaver/sessionsaver/dialogs.py
@@ -159,7 +159,7 @@ class SessionManagerDialog(Dialog):
def on_delete_button_clicked(self, button):
session = self.get_current_session()
self.sessions.remove(session)
-# self.plugin._update_session_menu()
+ self.plugin._update_session_menu()
def on_close_button_clicked(self, button):
self.sessions.save()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]