changeset 9b26008292ab in /home/hg/repos/gajim-plugins

author: Klemens Schölhorn <[email protected]>
branches: 
details:gajim-plugins?cmd=changeset;node=9b26008292ab
description: Add a menu entry for OMEMO to the advanced/context menu

        This is done by overwriting the prepare_context_menu method of the 
ChatControl
        class and was inspired by gajim-otr [1].

        [1]: 
https://github.com/python-otr/gajim-otr/blob/061380/src/gotr/otrmodule.py#L343-L349

diffstat:

 omemo/ui.py |  18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diffs (36 lines):

diff -r ec182eb6f2da -r 9b26008292ab omemo/ui.py
--- a/omemo/ui.py       Sun Jul 17 18:36:30 2016 +0200
+++ b/omemo/ui.py       Sun Jul 17 18:58:03 2016 +0200
@@ -89,7 +89,9 @@
         self.ui.show_fingerprint_window()
 
     def set_omemo_state(self, state):
+        self.item_omemo_state.handler_block_by_func(self.on_toggle_omemo)
         self.item_omemo_state.set_active(state)
+        self.item_omemo_state.handler_unblock_by_func(self.on_toggle_omemo)
 
 
 def _add_widget(widget, chat_control):
@@ -115,6 +117,22 @@
 
         _add_widget(self.omemobutton, self.chat_control)
 
+        # add a OMEMO entry to the context/advanced menu
+        chat_control.omemo_orig_prepare_context_menu = 
chat_control.prepare_context_menu
+        def omemo_prepare_context_menu(hide_buttonbar_items=False):
+            menu = 
chat_control.omemo_orig_prepare_context_menu(hide_buttonbar_items)
+            submenu = OmemoMenu(self, self.encryption_active())
+
+            item = gtk.ImageMenuItem('OMEMO Encryption')
+            icon_path = plugin.local_file_path('omemo16x16.png')
+            item.set_image(gtk.image_new_from_file(icon_path))
+            item.set_submenu(submenu)
+
+            # at index 8 is the separator after the esession encryption entry
+            menu.insert(item, 8)
+            return menu
+        chat_control.prepare_context_menu = omemo_prepare_context_menu
+
     def set_omemo_state(self, enabled):
         """
         Enable or disable OMEMO for this window's contact and update the
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to