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
+