diff options
author | Dan Williams <dcbw@redhat.com> | 2006-05-23 16:42:26 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2006-05-23 16:42:26 (GMT) |
commit | a7a0c2cda57eb070c2b87adb5c80458c62ea7e7d (patch) | |
tree | 9c301ddc321211d5875ab078beca088cb64d3035 /sugar/chat | |
parent | 89f9730641addca90db025f4d1811b76b5c1f227 (diff) |
Fix some spacing issues; catch exceptions in XMLRPC client code and return result status (success or failure) to XMLRPC client callback
Diffstat (limited to 'sugar/chat')
-rwxr-xr-x | sugar/chat/chat.py | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/sugar/chat/chat.py b/sugar/chat/chat.py index bcd37ca..8c15698 100755 --- a/sugar/chat/chat.py +++ b/sugar/chat/chat.py @@ -19,6 +19,7 @@ from sugar.p2p import Buddy from sugar.p2p.Group import LocalGroup from sugar.p2p.Service import Service from sugar.p2p.Stream import Stream +from sugar.p2p import network from sugar.session.LogWriter import LogWriter from sugar.chat.sketchpad.Toolbox import Toolbox from sugar.chat.sketchpad.SketchPad import SketchPad @@ -280,15 +281,15 @@ class Chat(activity.Activity): print "act %d: in activity_on_close_from_user" % self.activity_get_id() self.activity_shutdown() - def _scroll_chat_view_to_bottom(self): - # Only scroll to bottom if the view is already close to the bottom - vadj = self._chat_sw.get_vadjustment() - if vadj.value + vadj.page_size > vadj.upper * 0.8: - vadj.value = vadj.upper - vadj.page_size - self._chat_sw.set_vadjustment(vadj) + def _scroll_chat_view_to_bottom(self): + # Only scroll to bottom if the view is already close to the bottom + vadj = self._chat_sw.get_vadjustment() + if vadj.value + vadj.page_size > vadj.upper * 0.8: + vadj.value = vadj.upper - vadj.page_size + self._chat_sw.set_vadjustment(vadj) def _message_inserted(self): - gobject.idle_add(self._scroll_chat_view_to_bottom) + gobject.idle_add(self._scroll_chat_view_to_bottom) self.activity_set_has_changes(True) def _insert_buddy(self, buf, nick): @@ -399,6 +400,9 @@ class Chat(activity.Activity): def recv_message(self, buddy, msg): """Insert a remote chat message into the chat buffer.""" + if not buddy: + return + chunk = self._get_first_richtext_chunk(msg) if chunk: self._insert_rich_message(buddy.get_nick_name(), chunk) @@ -597,14 +601,16 @@ class GroupChat(Chat): self._chats[buddy] = chat chat.activity_connect_to_shell() - def _request_buddy_icon_cb(self, response, user_data): + def _request_buddy_icon_cb(self, result_status, response, user_data): icon = response buddy = user_data - if icon and len(icon): - icon = base64.b64decode(icon) - print "Buddy icon for '%s' is size %d" % (buddy.get_nick_name(), len(icon)) - buddy.set_icon(icon) - else: + if result_status == network.RESULT_SUCCESS: + if icon and len(icon): + icon = base64.b64decode(icon) + print "Buddy icon for '%s' is size %d" % (buddy.get_nick_name(), len(icon)) + buddy.set_icon(icon) + + if result_status == network.RESULT_FAILED or not icon: # What the heck, try again! gobject.timeout_add(1000, self._request_buddy_icon, buddy) |