diff frontends/src/quick_frontend/quick_contact_list.py @ 1297:ef7e8e23b353 frontends_multi_profiles

quick_frontend: add some properties for QuickContactList
author souliane <souliane@mailoo.org>
date Thu, 05 Feb 2015 12:10:42 +0100
parents faa1129559b8
children 3dc7f61677bb
line wrap: on
line diff
--- a/frontends/src/quick_frontend/quick_contact_list.py	Fri Feb 06 10:50:01 2015 +0100
+++ b/frontends/src/quick_frontend/quick_contact_list.py	Thu Feb 05 12:10:42 2015 +0100
@@ -83,6 +83,36 @@
                 return False
         return entity in self._cache
 
+    @property
+    def roster_entities(self):
+        """Return all the bare JIDs of the roster entities.
+
+        @return: set(jid.JID)
+        """
+        return self._roster
+
+    @property
+    def roster_entities_by_group(self):
+        """Return a dictionary binding the roster groups to their entities bare JIDs.
+
+        @return: dict{unicode: set(jid.JID)}
+        """
+        return {group: self._groups[group]['jids'] for group in self._groups}
+
+    @property
+    def roster_groups_by_entity(self, contact_jid_s):
+        """Return a dictionary binding the entities bare JIDs to their roster groups.
+
+        @return: dict{jid.JID: set(unicode)}
+        """
+        result = {}
+        for group, data in self._groups.iteritems():
+            if group is None:
+                continue
+            for entity in data['jids']:
+                result.setdefault(entity, set()).add(group)
+        return result
+
     def fill(self):
         """Get all contacts from backend, and fill the widget"""
         def gotContacts(contacts):