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)>2009-10-13 11:41:32 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2009-10-13 11:41:32 (GMT)
commit3dfd886b708b593dbea60d60e6d8fb65e2f4745b (patch)
tree5ca41023df9b0ad260b394a5c3ff8893ecda6e46
parent0bfe1c8c9f84f04b2b76ab7fdff1308d5fac723d (diff)
add chooser to import Python block
-rw-r--r--NEWS1
-rw-r--r--TurtleArtActivity.py6
-rw-r--r--tasetup.py2
-rw-r--r--tawindow.py16
4 files changed, 15 insertions, 10 deletions
diff --git a/NEWS b/NEWS
index 1ce692c..30ae38d 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@
* load start block for new projects
* fixed bug with reloading descriptions from Journal
* added hover help to command line version
+* initiate the import Python chooser when Python block is clicked
73
diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py
index f7b030b..129d17d 100644
--- a/TurtleArtActivity.py
+++ b/TurtleArtActivity.py
@@ -375,6 +375,8 @@ class TurtleArtActivity(activity.Activity):
if self._jobject and self._jobject.file_path:
self.read_file(self._jobject.file_path)
+ else: # if new, load a start brick onto the canvas
+ tawindow.load_start(self.tw)
"""
A simplistic sharing model: the sharer is the master;
@@ -487,7 +489,7 @@ class TurtleArtActivity(activity.Activity):
def _do_load_python_cb(self, button):
self.load_python.set_icon("pippy-openon")
- self._import_py()
+ self.import_py()
gobject.timeout_add(250,self.load_python.set_icon, "pippy-openoff")
return
@@ -511,7 +513,7 @@ class TurtleArtActivity(activity.Activity):
return
# Import Python code from the Journal to load into "myblock"
- def _import_py(self):
+ def import_py(self):
from sugar.graphics.objectchooser import ObjectChooser
chooser = ObjectChooser('Python code', None, gtk.DIALOG_MODAL | \
gtk.DIALOG_DESTROY_WITH_PARENT)
diff --git a/tasetup.py b/tasetup.py
index d2a1de1..77c5be9 100644
--- a/tasetup.py
+++ b/tasetup.py
@@ -315,7 +315,7 @@ def setup_selector(tw,name,y,blockdescriptions):
proto.name = bname
proto.image = image
proto.primname=primname
- if primname=='':
+ if primname=='': # handle definable blocks differently
tw.valdict[docktype]=bname
tw.defdict[bname]=b[3]
proto.eval=b[4]
diff --git a/tawindow.py b/tawindow.py
index 5b65de0..0578909 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -103,7 +103,6 @@ def twNew(win, path, lang, parent=None):
tw.dead_key = ""
tw.area = win.window
tw.gc = tw.area.new_gc()
- # tw.window.textentry = gtk.Entry()
# on an OLPC-XO-1, there is a scaling factor
if os.path.exists('/sys/power/olpc-pm'):
tw.lead = 1.6
@@ -425,12 +424,15 @@ def button_release(tw, x, y, verbose=False):
elif tw.defdict.has_key(spr.proto.name):
tw.selected_block = spr
if spr.proto.name=='string':
- # entry = gtk.Entry()
move(tw.select_mask_string, (spr.x-5,spr.y-5))
setlayer(tw.select_mask_string, 660)
tw.firstkey = True
elif spr.proto.name in importblocks:
import_from_journal(tw, spr)
+ # if Python block is clicked before any code has been loaded
+ # initiate the chooser dialog
+ elif spr.proto.name=='nop' and tw.myblock==None:
+ tw.activity.import_py()
else: run_stack(tw, spr)
def import_from_journal(tw, spr):
@@ -773,17 +775,17 @@ def xy(event):
return map(int, event.get_coords())
def showPopup(block_name,tw):
- if block_name in blocks_dict:
+ if blocks_dict.has_key(block_name):
block_name_s = _(blocks_dict[block_name])
else:
block_name_s = _(block_name)
- try:
+ if hover_dict.has_key(block_name):
label = block_name_s + ": " + hover_dict[block_name]
- except:
+ else:
label = block_name_s
- if hasattr(tw,"activity"):
+ if hasattr(tw, "activity"):
tw.activity.hover_help_label.set_text(label)
tw.activity.hover_help_label.show()
- elif hasattr(tw,"win"):
+ elif hasattr(tw, "win"):
tw.win.set_title(_("Turtle Art") + " — " + label)
return 0