changeset 1428:0e518415d03a

display the resource in the chat dialog when printing a private MUC message
author souliane <souliane@mailoo.org>
date Fri, 24 Apr 2015 16:10:46 +0200
parents 1e833970b7f0
children 798e5e38516b
files frontends/src/quick_frontend/quick_chat.py frontends/src/quick_frontend/quick_contact_list.py
diffstat 2 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/frontends/src/quick_frontend/quick_chat.py	Fri Apr 24 14:57:09 2015 +0200
+++ b/frontends/src/quick_frontend/quick_chat.py	Fri Apr 24 16:10:46 2015 +0200
@@ -158,9 +158,9 @@
 
     def _get_nick(self, entity):
         """Return nick of this entity when possible"""
-        if self.type == C.CHAT_GROUP:
+        contact_list = self.host.contact_lists[self.profile]
+        if self.type == C.CHAT_GROUP or entity in contact_list.getSpecialExtras(C.CONTACT_SPECIAL_GROUP):
             return entity.resource
-        contact_list = self.host.contact_lists[self.profile]
         if entity.bare in contact_list:
             return contact_list.getCache(entity,'nick') or contact_list.getCache(entity,'name') or entity.node or entity
         return entity.node or entity
--- a/frontends/src/quick_frontend/quick_contact_list.py	Fri Apr 24 14:57:09 2015 +0200
+++ b/frontends/src/quick_frontend/quick_contact_list.py	Fri Apr 24 16:10:46 2015 +0200
@@ -243,6 +243,18 @@
             return self._specials
         return set([entity for entity in self._specials if self.getCache(entity, C.CONTACT_SPECIAL) == special_type])
 
+    def getSpecialExtras(self, special_type=None):
+        """Return all the JIDs of the special extras entities that are related
+        to a special entity of the type specified by special_type.
+        If special_type is None, return all special extras.
+
+        @param special_type: one of special type (e.g. C.CONTACT_SPECIAL_GROUP) or None to return all special extras.
+        @return: set(jid.JID)
+        """
+        if special_type is None:
+            return self._special_extras
+        return set([extra for extra in self._special_extras if extra.bare in self.getSpecials(special_type)])
+
     def clearContacts(self):
         """Clear all the contact list"""
         self.unselectAll()