From a4c1393cde5aca141ceac2c7c7aa4e4177f6f96f Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 09 Dec 2011 17:11:03 +0000 Subject: more simple workaround for get_preview problem --- diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py index 17a5941..2518d91 100644 --- a/TurtleArtActivity.py +++ b/TurtleArtActivity.py @@ -79,6 +79,11 @@ class TurtleArtActivity(activity.Activity): _logger.debug('_setup_canvas') self._canvas = self._setup_canvas(self._setup_scrolled_window()) + # FIX ME: not sure how or why self.canvas gets overwritten + # It is set to self.sw in _setup_canvas but None here. + # We need self.canvas for generating the preview image + self.canvas = self.sw + _logger.debug('_setup_palette_toolbar') self._setup_palette_toolbar() self._setup_help_toolbar() @@ -685,7 +690,6 @@ class TurtleArtActivity(activity.Activity): ''' Create a scrolled window to contain the turtle canvas. ''' self.sw = gtk.ScrolledWindow() self.set_canvas(self.sw) - _logger.debug('in scrolled window: %s' % (str(self.canvas))) self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.sw.show() @@ -761,35 +765,6 @@ class TurtleArtActivity(activity.Activity): _('turtle blocks')]) _logger.debug('Wrote to file: %s' % file_path) - def get_preview(self): - ''' Override of activity.get_preview since self.canvas is - somehow being reset ''' - from sugar.graphics import style - _logger.debug('in get_preview: %s' % (str(self.canvas))) - if self.canvas is None: - self.canvas = self.sw - if not hasattr(self.canvas, 'get_snapshot'): - _logger.debug('no get_snapshot attribute') - return - pixmap = self.canvas.get_snapshot((-1, -1, 0, 0)) - - width, height = pixmap.get_size() - pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, width, height) - pixbuf = pixbuf.get_from_drawable(pixmap, pixmap.get_colormap(), - 0, 0, 0, 0, width, height) - pixbuf = pixbuf.scale_simple(style.zoom(300), style.zoom(225), - gtk.gdk.INTERP_BILINEAR) - - 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) - - return preview_data - def read_file(self, file_path, run_it=True): ''' Read a project in and then run it. ''' if hasattr(self, 'tw'): -- cgit v0.9.1