[Sugar-devel] [PATCH] Remove bitmap icon handling from s-p-s

Bernie Innocenti bernie at codewiz.org
Tue Aug 10 18:38:31 EDT 2010


This patch gets rid of some almost-dead code in sugar-presence-service
for handling bitmap avatars.

Signed-off-by: Bernie Innocenti <bernie at codewiz.org>
---
 src/buddy.py |   63 +--------------------------------------------------------
 1 files changed, 2 insertions(+), 61 deletions(-)

diff --git a/src/buddy.py b/src/buddy.py
index d81952e..4335f2d 100644
--- a/src/buddy.py
+++ b/src/buddy.py
@@ -69,37 +69,6 @@ def _buddy_icon_save_cb(buf, data):
     data[0] += buf
     return True
 
-def _get_buddy_icon_at_size(icon, maxw, maxh, maxsize):
-# FIXME Do not import gtk in the presence service,
-# it uses a lot of memory and slow down startup.
-#    loader = gtk.gdk.PixbufLoader()
-#    loader.write(icon)
-#    loader.close()
-#    unscaled_pixbuf = loader.get_pixbuf()
-#    del loader
-#
-#    pixbuf = unscaled_pixbuf.scale_simple(maxw, maxh, gtk.gdk.INTERP_BILINEAR)
-#    del unscaled_pixbuf
-#
-#    data = [""]
-#    quality = 90
-#    img_size = maxsize + 1
-#    while img_size > maxsize:
-#        data = [""]
-#        pixbuf.save_to_callback(_buddy_icon_save_cb, "jpeg",
-#                                {"quality":"%d" % quality}, data)
-#        quality -= 10
-#        img_size = len(data[0])
-#    del pixbuf
-#
-#    if img_size > maxsize:
-#        data = [""]
-#        raise RuntimeError("could not size image less than %d bytes" % maxsize)
-#
-#    return str(data[0])
-
-    return ""
-
 class Buddy(ExportedGObject):
     """Person on the network (tracks properties and shared activites)
 
@@ -212,20 +181,9 @@ class Buddy(ExportedGObject):
                 _logger.debug("Invalid init property '%s'; ignoring..." % key)
                 del kwargs[key]
 
-        # Set icon after superclass init, because it sends DBus and GObject
-        # signals when set
-        icon_data = None
-        if kwargs.has_key(_PROP_ICON):
-            icon_data = kwargs[_PROP_ICON]
-            del kwargs[_PROP_ICON]
-
         ExportedGObject.__init__(self, bus, self._object_path,
                                  gobject_properties=kwargs)
 
-        if icon_data is not None:
-            self._icon = str(icon_data)
-            self.IconChanged(self._icon)
-
     def __repr__(self):
         return '<ps.buddy.Buddy %s>' % (self._nick or u'').encode('utf-8')
 
@@ -893,17 +851,6 @@ class GenericOwner(Buddy):
         if maxsize > 0 and size > maxsize:
             size = maxsize
 
-        if 1:
-            # FIXME: Avatars have been disabled for Trial-2 due to performance
-            # issues in the avatar cache. Revisit this afterwards
-            pass
-        else:
-            img_data = _get_buddy_icon_at_size(icon_data, width, height, size)
-            conn[CONN_INTERFACE_AVATARS].SetAvatar(img_data, "image/jpeg",
-                    reply_handler=set_self_avatar_cb,
-                    error_handler=lambda e:
-                        _logger.warning('Error setting avatar: %s', e))
-
     def _property_changed(self, changed_props):
         for tp in self._handles.iterkeys():
 
@@ -963,8 +910,7 @@ class ShellOwner(GenericOwner):
         bus -- a connection to the D-Bus session bus
 
         Retrieves initial property values from the profile
-        module.  Loads the buddy icon from file as well.
-            XXX note: no error handling on that
+        module.
 
         calls GenericOwner.__init__
         """
@@ -981,14 +927,9 @@ class ShellOwner(GenericOwner):
         if not isinstance(nick, unicode):
             nick = unicode(nick, 'utf-8')
 
-        icon_file = os.path.join(env.get_profile_path(), "buddy-icon.jpg")
-        f = open(icon_file, "r")
-        icon = f.read()
-        f.close()
-
         GenericOwner.__init__(self, ps, bus,
                 'keyid/' + psutils.pubkey_to_keyid(key),
-                key=key, nick=nick, color=color, icon=icon, key_hash=key_hash,
+                key=key, nick=nick, color=color, key_hash=key_hash,
                 tags=tags)
 
         # Ask to get notifications on Owner object property changes in the
-- 
1.7.2.1



More information about the Sugar-devel mailing list