diff src/browser/sat_browser/contact.py @ 578:668bb04e9708

browser_side: set the roster contact's contextual menu on the avatar (no extra button)
author souliane <souliane@mailoo.org>
date Sat, 18 Oct 2014 23:42:13 +0200
parents b07f0fe2763a
children
line wrap: on
line diff
--- a/src/browser/sat_browser/contact.py	Sat Oct 18 14:47:47 2014 +0200
+++ b/src/browser/sat_browser/contact.py	Sat Oct 18 23:42:13 2014 +0200
@@ -111,6 +111,14 @@
         base_widget.WidgetMenuBar.onBrowserEvent(self, event)
         event.stopPropagation()  # prevent opening the chat dialog
 
+    @classmethod
+    def getCategoryHTML(cls, menu_name_i18n, type_):
+        return '<img src="%s"/>' % C.DEFAULT_AVATAR
+
+    def setUrl(self, url):
+        """Set the URL of the contact avatar."""
+        self.items[0].setHTML('<img src="%s" />' % url)
+
 
 class ContactBox(VerticalPanel, ClickHandler, base_widget.DragLabel):
 
@@ -120,20 +128,15 @@
         self.host = host
         self.jid = jid
         self.label = ContactLabel(jid, name)
-        self.avatar = Image()
+        self.avatar = ContactMenuBar(self, host) if handle_menu else Image()
         self.updateAvatar(host.getAvatar(jid))
-        extra = HorizontalPanel()
-        extra.add(self.avatar)
-        self.add(extra)
+        self.add(self.avatar)
         self.add(self.label)
         if click_listener:
             ClickHandler.__init__(self)
             self.addClickListener(self)
             self.click_listener = click_listener
 
-        if handle_menu:
-            extra.add(ContactMenuBar(self, host))
-
     def addMenus(self, menu_bar):
         menu_bar.addCachedMenus(C.MENU_ROSTER_JID_CONTEXT, {'jid': self.jid})
         menu_bar.addCachedMenus(C.MENU_JID_CONTEXT, {'jid': self.jid})
@@ -145,11 +148,10 @@
         self.label.setMessageWaiting(waiting)
 
     def updateAvatar(self, url):
-        """Update the avatar
+        """Update the avatar.
 
         @param url (str): image url
         """
-        self.avatar.setVisible(url != C.DEFAULT_AVATAR)
         self.avatar.setUrl(url)
 
     def onClick(self, sender):