Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2010-01-29 14:46:01 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2010-01-29 14:46:01 (GMT)
commitad6e73556019662d827cf860dc4c14d3b74bb005 (patch)
tree829e212c9692f529a3e55057dd42b1317a2ddcf5
parente322350dcd6b7c7ffa8e665f0587b87148310b38 (diff)
fixed Python block problems
-rw-r--r--constants.py2
-rw-r--r--talogo.py2
-rw-r--r--taproject.py25
-rw-r--r--tawindow.py12
4 files changed, 30 insertions, 11 deletions
diff --git a/constants.py b/constants.py
index 777450e..543b1e3 100644
--- a/constants.py
+++ b/constants.py
@@ -188,7 +188,7 @@ PRIMITIVES = {'clean':'clean', 'forward':'forward', 'back':'back', 'arc':'arc',
'bottompos':'bottompos', 'width':'hres', 'height':'vres',
'hideblocks':'hideblocks', 'push':'push', 'pop':'pop',
'keyboard':'keyboard', 'kbinput':'kbinput', 'myfunc':'myfunc',
- 'nop':'nop', 'printheap':'printheap', 'clearheap':'clearheap',
+ 'nop':'userdefined', 'printheap':'printheap', 'clearheap':'clearheap',
'red':'red', 'orange':'orange', 'yellow':'yellow',
'green':'green', 'cyan':'cyan', 'blue':'blue',
'purple':'purple'}
diff --git a/talogo.py b/talogo.py
index e7b3f7d..b2a0251 100644
--- a/talogo.py
+++ b/talogo.py
@@ -655,7 +655,7 @@ def box(lc,x):
raise logoerror("#emptybox")
def loadmyblock(lc,x):
- # execute code inported from the Journal
+ # Execute code imported from the Journal
if lc.tw.myblock is not None:
y = myfunc_import(lc, lc.tw.myblock, x)
else:
diff --git a/taproject.py b/taproject.py
index 562fbf9..f0fb314 100644
--- a/taproject.py
+++ b/taproject.py
@@ -65,15 +65,24 @@ def new_project(tw):
tw.save_file_name = None
def load_file(tw, create_new_project=True):
- fname = _get_load_name(tw)
+ fname = _get_load_name(tw, '.ta')
if fname==None:
return
- if fname[-3:]=='.ta':
+ if fname[-3:] == '.ta':
fname=fname[0:-3]
- load_files(tw,fname+'.ta', create_new_project)
+ load_files(tw, fname+'.ta', create_new_project)
if create_new_project is True:
tw.save_file_name = os.path.basename(fname)
+# From Suger, we use the Journal, but from outside of Sugar, we load from a file
+def load_python_code(tw):
+ fname = _get_load_name(tw, '.py')
+ if fname==None:
+ return
+ f = open(fname, 'r')
+ tw.myblock = f.read()
+ f.close()
+
#
# We try to maintain read-compatibility with all versions of Turtle Art.
# Try pickle first; then two different versions of json.
@@ -102,13 +111,13 @@ def _json_load(text):
# json converts tuples to lists, so we need to convert back,
return _tuplify(listdata)
-def _get_load_name(tw):
+def _get_load_name(tw, suffix):
dialog = gtk.FileChooserDialog("Load...", None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)
- return _do_dialog(tw, dialog)
+ return _do_dialog(tw, dialog, suffix)
# Unpack serialized data sent across a share.
def load_string(tw, text):
@@ -233,7 +242,7 @@ def _get_save_name(tw):
dialog.set_default_response(gtk.RESPONSE_OK)
if tw.save_file_name is not None:
dialog.set_current_name(tw.save_file_name+'.ta')
- return _do_dialog(tw,dialog)
+ return _do_dialog(tw, dialog, '.ta')
def save_data(tw, fname):
f = file(fname, "w")
@@ -288,10 +297,10 @@ def get_id(c):
return None
return c.id
-def _do_dialog(tw,dialog):
+def _do_dialog(tw, dialog, suffix):
result = None
filter = gtk.FileFilter()
- filter.add_pattern("*.ta")
+ filter.add_pattern('*'+suffix)
filter.set_name("Turtle Art")
dialog.add_filter(filter)
dialog.set_current_folder(tw.load_save_folder)
diff --git a/tawindow.py b/tawindow.py
index eefd3f5..0868102 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -917,7 +917,7 @@ class TurtleArtWindow():
self._import_from_journal(self.selected_spr)
'''
elif blk.name=='nop' and self.myblock==None:
- self.activity.import_py()
+ self._import_py()
else:
self._run_stack(blk)
@@ -1204,6 +1204,16 @@ class TurtleArtWindow():
self.drag_group = None
"""
+ Import Python code into a block
+ """
+ def _import_py(self):
+ if self.running_sugar():
+ self.activity.import_py()
+ else:
+ load_python_code(self)
+ self.set_userdefined()
+
+ """
Make sure a 'number' block contains a number.
"""
def _number_check(self):