Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/turtleblocks.py
diff options
context:
space:
mode:
authorMarion <marion.zepf@gmail.com>2013-07-18 09:16:01 (GMT)
committer Marion <marion.zepf@gmail.com>2013-07-18 09:16:01 (GMT)
commitccf1695b3ebb4c13ac4756e1f454d72b34df9aff (patch)
treedca6e7a0b3f630e4c9beae009c3d69c7bfc87107 /turtleblocks.py
parentf08f71ea8efb9eb7de31fd3a84ac3d550ce39974 (diff)
add menu item to GNOME version for exporting python code
Diffstat (limited to 'turtleblocks.py')
-rwxr-xr-xturtleblocks.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/turtleblocks.py b/turtleblocks.py
index 5d5808f..02e1aae 100755
--- a/turtleblocks.py
+++ b/turtleblocks.py
@@ -55,6 +55,7 @@ from TurtleArt.taconstants import (OVERLAY_LAYER, DEFAULT_TURTLE_COLORS,
from TurtleArt.tautils import (data_from_string, get_save_name)
from TurtleArt.tawindow import TurtleArtWindow
from TurtleArt.taexportlogo import save_logo
+from TurtleArt.taexportpython import save_python
from util.menubuilder import MenuBuilder
@@ -377,6 +378,8 @@ return %s(self)" % (p, P, P)
self._do_save_picture_cb)
MenuBuilder.make_menu_item(menu, _('Save as Logo'),
self._do_save_logo_cb)
+ MenuBuilder.make_menu_item(menu, _('Save as Python'),
+ self._do_save_python_cb)
MenuBuilder.make_menu_item(menu, _('Quit'), self._quit_ta)
activity_menu = MenuBuilder.make_sub_menu(menu, _('File'))
@@ -527,6 +530,23 @@ Would you like to save before quitting?'))
f.write(logocode)
f.close()
+ def _do_save_python_cb(self, widget):
+ ''' Callback for saving the project as Python code. '''
+ # TODO implement
+ pythoncode = save_python(self.tw)
+ if not pythoncode:
+ return
+ save_type = '.py'
+ # TODO use name of TA project if it has been saved already
+ (filename, self.tw.load_save_folder) = get_save_name(
+ save_type, self.tw.load_save_folder, 'myproject')
+ if isinstance(filename, unicode):
+ filename = filename.encode('ascii', 'replace')
+ if filename is not None:
+ f = file(filename, 'w')
+ f.write(pythoncode)
+ f.close()
+
def _do_resize_cb(self, widget, factor):
''' Callback to resize blocks. '''
if factor == -1: