diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py index f34553d..e3a5cc3 100644 --- a/src/sugar/activity/activity.py +++ b/src/sugar/activity/activity.py @@ -724,19 +724,12 @@ class Activity(Window, gtk.Container): pixbuf = pixbuf.scale_simple(style.zoom(300), style.zoom(225), gtk.gdk.INTERP_BILINEAR) - # TODO: Find a way of taking a png out of the pixbuf without saving - # to a temp file. Impementing gtk.gdk.Pixbuf.save_to_buffer in pygtk - # would solve this. - fd, file_path = tempfile.mkstemp('.png') - os.close(fd) - - pixbuf.save(file_path, 'png') - f = open(file_path) - try: - preview_data = f.read() - finally: - f.close() - os.remove(file_path) + preview_data = [] + def save_func(buf, data): + data.append(buf) + + pixbuf.save_to_callback(save_func, 'png', user_data=preview_data) + preview_data = ''.join(preview_data) self._preview.clear()