From 1c1220c44a5c30be16aafc835b2cef1dff7b4707 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Tue, 31 Dec 2013 15:10:17 +0000 Subject: patch from ignacio of make save as icon button insensitive --- diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index 23a6ad8..9f5c600 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -4667,6 +4667,9 @@ before making changes to your program')) else: for ds_id in self.saved_pictures: path_list.append(ds_id[0]) + if len(path_list) < 1: + debug_output('nothing to save to ODP', self.running_sugar) + return pres = TurtleODP() pres.create_presentation(TMP_ODP_PATH, 1024, 768) diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py index 974679a..596b7b6 100644 --- a/TurtleArtActivity.py +++ b/TurtleArtActivity.py @@ -336,7 +336,6 @@ class TurtleArtActivity(activity.Activity): gobject.timeout_add(250, self.load_python.set_icon, 'pippy-openoff') def do_save_as_odp_cb(self, button): - self.save_as_icon.set_icon('odp-saveon') _logger.debug('saving odp to journal') if hasattr(self, 'get_window'): if hasattr(self.get_window(), 'get_cursor'): @@ -346,7 +345,6 @@ class TurtleArtActivity(activity.Activity): def __save_as_odp(self): self.tw.save_as_odp() - self.save_as_icon.set_icon('odp-saveoff') if hasattr(self, 'get_window'): self.get_window().set_cursor(self._old_cursor) @@ -922,7 +920,10 @@ class TurtleArtActivity(activity.Activity): add_paragraph(help_box, _('Share selected blocks'), icon='shareon') add_paragraph(help_box, _('Save/Load'), icon='save-load') add_paragraph(help_box, _('Save as image'), icon='image-saveoff') - add_paragraph(help_box, _('Save as icon'), icon='image-saveoff') + self.save_as_icon = add_paragraph( + help_box, _('Save as icon'), icon='image-saveoff') + self.save_as_icon.connect( + 'expose-event', self._save_as_icon_expose_cb) # TRANS: ODP is Open Office presentation add_paragraph(help_box, _('Save as ODP'), icon='odp-saveoff') add_paragraph(help_box, _('Save as Logo'), icon='logo-saveoff') @@ -980,6 +981,10 @@ class TurtleArtActivity(activity.Activity): add_paragraph(help_box, _('Shrink blocks'), icon='resize-') add_paragraph(help_box, _('Turn off hover help'), icon='help-off') + def _save_as_icon_expose_cb(self, box, context): + for widget in box.get_children(): + widget.set_sensitive(self.tw.canvas.cr_svg is not None) + def _setup_palette_toolbar(self): ''' The palette toolbar must be setup *after* plugins are loaded. ''' if self.has_toolbarbox: @@ -1116,6 +1121,8 @@ class TurtleArtActivity(activity.Activity): self.save_as_odp = self._add_button_and_label( 'odp-saveoff', _('Save as ODP'), self.do_save_as_odp_cb, None, button_box) + self.save_as_icon[0].get_parent().connect('expose-event', + self._save_as_icon_expose_cb) self.save_as_logo, label = self._add_button_and_label( 'logo-saveoff', _('Save as Logo'), self.do_save_as_logo_cb, None, button_box) @@ -1171,6 +1178,8 @@ class TurtleArtActivity(activity.Activity): self.save_as_odp = self._add_button( 'odp-saveoff', _('Save as ODP'), self.do_save_as_odp_cb, toolbar) + self.save_as_icon.connect('expose-event', + self._save_as_icon_expose_cb) self.save_as_logo = self._add_button( 'logo-saveoff', _('Save as Logo'), self.do_save_as_logo_cb, toolbar) diff --git a/util/helpbutton.py b/util/helpbutton.py index aff4fc5..da0bc67 100644 --- a/util/helpbutton.py +++ b/util/helpbutton.py @@ -115,3 +115,5 @@ def add_paragraph(help_box, text, icon=None): hbox.show_all() help_box.pack_start(hbox, False, False, padding=5) + + return hbox -- cgit v0.9.1