From 3dfd886b708b593dbea60d60e6d8fb65e2f4745b Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Tue, 13 Oct 2009 11:41:32 +0000 Subject: add chooser to import Python block --- 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 -- cgit v0.9.1