Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/chat
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-05-23 16:42:26 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-05-23 16:42:26 (GMT)
commita7a0c2cda57eb070c2b87adb5c80458c62ea7e7d (patch)
tree9c301ddc321211d5875ab078beca088cb64d3035 /sugar/chat
parent89f9730641addca90db025f4d1811b76b5c1f227 (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-xsugar/chat/chat.py32
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)