changeset 1434:b06047e1c1fb

primitivus: fix setting the presence and status
author souliane <souliane@mailoo.org>
date Wed, 10 Jun 2015 09:18:34 +0200 (2015-06-10)
parents 5d42e2219d7c
children 7590bbf44eed
files frontends/src/primitivus/primitivus frontends/src/primitivus/status.py src/core/xmpp.py
diffstat 3 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/frontends/src/primitivus/primitivus	Sat Jun 06 17:01:22 2015 +0200
+++ b/frontends/src/primitivus/primitivus	Wed Jun 10 09:18:34 2015 +0200
@@ -117,6 +117,7 @@
         elif command == 'messages':
             wid = sat_widgets.GenericList(logging.memoryGet())
             self.host.selectWidget(wid)
+        # FIXME: reactivate the command
         # elif command == 'presence':
         #     values = [value for value in commonConst.PRESENCE.keys()]
         #     values = [value if value else 'online' for value in values]  # the empty value actually means 'online'
--- a/frontends/src/primitivus/status.py	Sat Jun 06 17:01:22 2015 +0200
+++ b/frontends/src/primitivus/status.py	Wed Jun 10 09:18:34 2015 +0200
@@ -61,8 +61,9 @@
         elif isinstance(user_data, sat_widgets.AdvancedEdit):
             new = (previous[0], new_value[0])
         if new != previous:
+            statuses = {C.PRESENCE_STATUSES_DEFAULT: new[1]}  # FIXME: manage multilingual statuses
             for profile in self.host.profiles:  # FIXME: for now all the profiles share the same status
-                self.host.bridge.setPresence(show=new[0], status=new[1], profile_key=profile)  # FIXME: manage multilingual statuses
+                self.host.bridge.setPresence(show=new[0], statuses=statuses, profile_key=profile)
             self.setPresenceStatus(new[0], new[1])
         self.host.removePopUp()
 
--- a/src/core/xmpp.py	Sat Jun 06 17:01:22 2015 +0200
+++ b/src/core/xmpp.py	Wed Jun 10 09:18:34 2015 +0200
@@ -354,6 +354,13 @@
         self.host.bridge.presenceUpdate(entity.full(), "unavailable", 0, statuses, self.parent.profile)
 
     def available(self, entity=None, show=None, statuses=None, priority=None):
+        """Set a presence and statuses.
+
+        @param entity (jid.JID): entity
+        @param show (unicode): value in ('unavailable', '', 'away', 'xa', 'chat', 'dnd')
+        @param statuses (dict{unicode: unicode}): multilingual statuses with
+            the entry key beeing a language code on 2 characters or "default".
+        """
         if priority is None:
             try:
                 priority = int(self.host.memory.getParamA("Priority", "Connection", profile_key=self.parent.profile))