From 5a66714255b60548d664ad1e6dca04b9eba15ab0 Mon Sep 17 00:00:00 2001 From: Max Usachev Date: Thu, 17 Jun 2010 12:22:15 +0300 Subject: [PATCH] implemented getting avatar image from model --- renderers/hildon_renderer.py | 17 ++++++++++++++--- ui/hildon_ui.py | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/renderers/hildon_renderer.py b/renderers/hildon_renderer.py index a99c69a..454f50d 100644 --- a/renderers/hildon_renderer.py +++ b/renderers/hildon_renderer.py @@ -4,7 +4,9 @@ Hildon renderer import os import gtk +import gtk.gdk import hildon +from base64 import b64decode as decode_image ICONS_48_PATH = '/usr/share/icons/hicolor/48x48/hildon/' ICONS_144_PATH = '/usr/share/icons/hicolor/144x144/hildon/' @@ -50,6 +52,15 @@ class HildonRenderer: def render_image(self, entry): """Sets entry image.""" - fname = os.path.join(ICONS_144_PATH, entry.get('image', \ - 'general_default_avatar.png')) - return gtk.image_new_from_file(fname) + if not entry.has_key('image'): + fname = os.path.join(ICONS_144_PATH, entry.get('image', \ + 'general_default_avatar.png')) + image = gtk.image_new_from_file(fname) + else: + pixbuf_loader = gtk.gdk.pixbuf_loader_new_with_mime_type( \ + "image/png") + pixbuf_loader.write(decode_image(entry['image'])) + pixbuf_loader.close() + image = gtk.image_new_from_pixbuf(pixbuf_loader.get_pixbuf().\ + scale_simple(144,144,gtk.gdk.INTERP_BILINEAR)) + return image diff --git a/ui/hildon_ui.py b/ui/hildon_ui.py index ea9fd76..0a71ce7 100644 --- a/ui/hildon_ui.py +++ b/ui/hildon_ui.py @@ -115,6 +115,7 @@ class HildonMeabook(MeabookUI): def show_settings_dialog(widget, parent, func1, func2, entry_id): dialog = ConfigurationDialog(self.controller, self.config) response = getattr(dialog, func1)(None, parent) + print response if response == gtk.RESPONSE_OK: func2(parent, entry_id) -- 1.7.9.5