changeset 48006b17fae1 in /home/hg/repos/gajim-plugins
author: Klemens Schölhorn <[email protected]>
branches:
details:gajim-plugins?cmd=changeset;node=48006b17fae1
description: Refactor menu of the OmemoButton into its own OmemoMenu class
diffstat:
omemo/ui.py | 85 +++++++++++++++++++++++++++++++++---------------------------
1 files changed, 47 insertions(+), 38 deletions(-)
diffs (134 lines):
diff -r 09e4a00f79ad -r 48006b17fae1 omemo/ui.py
--- a/omemo/ui.py Sat Jul 16 17:28:52 2016 +0200
+++ b/omemo/ui.py Sun Jul 17 16:49:48 2016 +0200
@@ -36,46 +36,19 @@
class OmemoButton(gtk.Button):
- def __init__(self, plugin, chat_control, ui, enabled):
+ def __init__(self, plugin, chat_control, menu):
super(OmemoButton, self).__init__(label=None, stock=None)
- self.plugin = plugin
- self.ui = ui
- self.enabled = enabled
- self.contact = chat_control.contact
self.chat_control = chat_control
+
self.set_property('relief', gtk.RELIEF_NONE)
self.set_property('can-focus', False)
self.set_sensitive(True)
- img = gtk.Image()
- img.set_from_file(self.plugin.local_file_path('omemo16x16.png'))
- self.set_image(img)
+
+ icon =
gtk.image_new_from_file(plugin.local_file_path('omemo16x16.png'))
+ self.set_image(icon)
self.set_tooltip_text('OMEMO Encryption')
- self.menu = gtk.Menu()
- item = gtk.CheckMenuItem('Activate OMEMO')
- if self.enabled:
- item.set_active(True)
- self.chat_control.print_conversation_line(
- u'OMEMO encryption enabled ', 'status', '', None)
- self.ui.refreshAuthLockSymbol()
- else:
- item.set_active(False)
- self.chat_control.print_conversation_line(
- u'OMEMO encryption disabled', 'status', '', None)
- self.ui.refreshAuthLockSymbol()
- item.connect('activate', self.activate_omemo)
- self.menu.append(item)
-
- item = gtk.ImageMenuItem('Fingerprints')
- icon = gtk.image_new_from_stock(gtk.STOCK_DIALOG_AUTHENTICATION,
- gtk.ICON_SIZE_MENU)
- item.set_image(icon)
- item.connect('activate', self.open_fingerprint_window)
- self.menu.append(item)
-
- self.menu.show_all()
-
- self.connect('clicked', self.on_click, self.menu)
+ self.connect('clicked', self.on_click, menu)
def on_click(self, widget, menu):
"""
@@ -84,7 +57,39 @@
gtkgui_helpers.popup_emoticons_under_button(
menu, widget, self.chat_control.parent_win)
- def activate_omemo(self, widget):
+
+class OmemoMenu(gtk.Menu):
+ def __init__(self, plugin, chat_control, ui, enabled):
+ super(OmemoMenu, self).__init__()
+ self.plugin = plugin
+ self.ui = ui
+ self.contact = chat_control.contact
+ self.chat_control = chat_control
+
+ self.item_omemo_state = gtk.CheckMenuItem('Activate OMEMO')
+ if enabled:
+ self.item_omemo_state.set_active(True)
+ self.chat_control.print_conversation_line(
+ u'OMEMO encryption enabled ', 'status', '', None)
+ self.ui.refreshAuthLockSymbol()
+ else:
+ self.item_omemo_state.set_active(False)
+ self.chat_control.print_conversation_line(
+ u'OMEMO encryption disabled', 'status', '', None)
+ self.ui.refreshAuthLockSymbol()
+ self.item_omemo_state.connect('activate', self.on_toggle_omemo)
+ self.append(self.item_omemo_state)
+
+ item = gtk.ImageMenuItem('Fingerprints')
+ icon = gtk.image_new_from_stock(gtk.STOCK_DIALOG_AUTHENTICATION,
+ gtk.ICON_SIZE_MENU)
+ item.set_image(icon)
+ item.connect('activate', self.on_open_fingerprint_window)
+ self.append(item)
+
+ self.show_all()
+
+ def on_toggle_omemo(self, widget):
enabled = widget.get_active()
if enabled:
log.debug(self.contact.account.name + ' => Enable OMEMO for ' +
@@ -101,11 +106,14 @@
self.chat_control.print_conversation_line(
u'OMEMO encryption disabled', 'status', '', None)
- def open_fingerprint_window(self, widget):
+ def on_open_fingerprint_window(self, widget):
dlg = FingerprintWindow(self.plugin, self.contact,
self.chat_control.parent_win.window)
dlg.show_all()
+ def set_omemo_state(self, state):
+ self.item_omemo_state.set_active(state)
+
def _add_widget(widget, chat_control):
actions_hbox = chat_control.xml.get_object('actions_hbox')
@@ -121,7 +129,9 @@
self.contact = chat_control.contact
self.chat_control = chat_control
self.state = state
- self.omemobutton = OmemoButton(plugin, chat_control, self, enabled)
+
+ self.menu = OmemoMenu(plugin, chat_control, self, enabled)
+ self.omemobutton = OmemoButton(plugin, chat_control, self.menu)
_add_widget(self.omemobutton, self.chat_control)
@@ -129,8 +139,7 @@
return self.state.encryption.is_active(self.contact.jid)
def activate_omemo(self):
- self.omemobutton.menu.set_active(0)
- self.omemobutton.menu.get_active().set_active(True)
+ self.menu.set_omemo_state(True)
def plain_warning(self):
self.chat_control.print_conversation_line(
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits