From 3e480dd17927aaf4bc1017e12303cdc2593cdffd Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 19 Mar 2009 21:30:30 +0000 Subject: adding "pippy-programmable" block --- (limited to 'TurtleArtActivity.py') diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py index a28333b..9a76bf1 100644 --- a/TurtleArtActivity.py +++ b/TurtleArtActivity.py @@ -123,6 +123,17 @@ class TurtleArtActivity(activity.Activity): _logger.debug("writing new version data") _logger.debug("and creating a tamyblock.py Journal entry") + if newversion is True: + dsobject = datastore.create() + dsobject.metadata['title'] = 'tamyblock.py' + dsobject.metadata['icon-color'] = \ + profile.get_color().to_string() + dsobject.metadata['mime_type'] = 'text/x-python' + dsobject.set_file_path(os.path.join( \ + activity.get_bundle_path(), 'tamyblock.py')) + datastore.write(dsobject) + dsobject.destroy() + versiondata.append(lang + version) FILE = open(os.path.join(datapath, filename), "w") FILE.writelines(versiondata) @@ -409,6 +420,19 @@ class SaveAsToolbar(gtk.Toolbar): self.insert(self.savelogo, -1) self.savelogo.show() + separator = gtk.SeparatorToolItem() + separator.set_draw(True) + self.insert(separator, -1) + separator.show() + + # Pippy load myblock source button + self.loadmyblock = ToolButton( "pippy-openoff" ) + self.loadmyblock.set_tooltip(_('load my block')) + self.loadmyblock.props.sensitive = True + self.loadmyblock.connect('clicked', self.do_loadmyblock) + self.insert(self.loadmyblock, -1) + self.loadmyblock.show() + def do_savehtml(self, button): # write html out to datastore self.savehtml.set_icon("htmlon") @@ -507,6 +531,32 @@ class SaveAsToolbar(gtk.Toolbar): gobject.timeout_add(250,self.savelogo.set_icon, "logo-saveoff") return + def do_loadmyblock(self, button): + self.loadmyblock.set_icon("pippy-openon") + self.import_py() + gobject.timeout_add(250,self.loadmyblock.set_icon, "pippy-openoff") + return + + def import_py(self): + from sugar.graphics.objectchooser import ObjectChooser + chooser = ObjectChooser('Python code', None, gtk.DIALOG_MODAL | \ + gtk.DIALOG_DESTROY_WITH_PARENT) + try: + result = chooser.run() + if result == gtk.RESPONSE_ACCEPT: + dsobject = chooser.get_selected_object() + try: + _logger.debug("opening %s " % dsobject.file_path) + FILE = open(dsobject.file_path, "r") + self.activity.tw.myblock = FILE.read() + FILE.close() + except: + _logger.debug("couldn't open %s" % dsobject.file_path) + dsobject.destroy() + finally: + chooser.destroy() + del chooser + class ProjectToolbar(gtk.Toolbar): def __init__(self, pc): -- cgit v0.9.1