From c4a32624887d58db8449423565efd43541fe1ac8 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Sat, 15 Apr 2006 08:10:24 +0000 Subject: [PATCH] [sol] save GPG status --- src/chat_control.py | 14 ++++++++++++++ src/common/config.py | 3 +++ src/common/connection.py | 4 ++++ src/gtkgui.glade | 1 + 4 files changed, 22 insertions(+) diff --git a/src/chat_control.py b/src/chat_control.py index 6b1b47d45..881b286cf 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -889,12 +889,26 @@ class ChatControl(ChatControlBase): self.status_tooltip.disable() # setup the label that holds name and jid banner_name_label.set_markup(label_text) + + def on_toggle_gpg_togglebutton(self, widget): + gajim.config.set_per('contacts', self.contact.get_full_jid(), + 'gpg_enabled', widget.get_active()) def _update_gpg(self): tb = self.xml.get_widget('gpg_togglebutton') if self.contact.keyID: # we can do gpg tb.set_sensitive(True) tt = _('OpenPGP Encryption') + + # restore gpg pref + gpg_pref = gajim.config.get_per('contacts', + self.contact.get_full_jid(), 'gpg_enabled') + if gpg_pref == None: + gajim.config.add_per('contacts', self.contact.get_full_jid()) + gpg_pref = gajim.config.get_per('contacts', + self.contact.get_full_jid(), 'gpg_enabled') + tb.set_active(gpg_pref) + else: tb.set_sensitive(False) #we talk about a contact here diff --git a/src/common/config.py b/src/common/config.py index 2f62a14e1..e5f2b4787 100644 --- a/src/common/config.py +++ b/src/common/config.py @@ -284,6 +284,9 @@ class Config: 'state_muc_msg_color': [ opt_color, 'mediumblue' ], 'state_muc_directed_msg_color': [ opt_color, 'red2' ], }, {}), + 'contacts': ({ + 'gpg_enabled': [ opt_bool, False ], + }, {}), } statusmsg_default = { diff --git a/src/common/connection.py b/src/common/connection.py index 29f7771f8..468a6464c 100644 --- a/src/common/connection.py +++ b/src/common/connection.py @@ -727,6 +727,10 @@ class Connection(ConnectionHandlers): return if remove_auth: self.connection.getRoster().delItem(jid) + jid_list = gajim.config.del_per('contacts') + for j in jid_list: + if j.startswith(jid): + gajim.config.del_per('contacts', j) else: self.connection.getRoster().Unsubscribe(jid) self.update_contact(jid, '', []) diff --git a/src/gtkgui.glade b/src/gtkgui.glade index 8360787ef..26288f9ca 100644 --- a/src/gtkgui.glade +++ b/src/gtkgui.glade @@ -18268,6 +18268,7 @@ Status message False False False +