diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | TurtleArt/tacanvas.py | 4 | ||||
-rw-r--r-- | TurtleArt/talogo.py | 22 | ||||
-rw-r--r-- | TurtleArt/taturtle.py | 6 | ||||
-rw-r--r-- | TurtleArt/tawindow.py | 33 |
5 files changed, 47 insertions, 21 deletions
@@ -8,6 +8,9 @@ * catch import error for upload (#2194) * rescaling of read pixel values (#2188) * turtle sees block takes into account gray and shade (#2188) +* hide extra turtles on clean (#2191) +* hide coordinate overlays on clean (#2191) +* reset scale, gray on clean (#2191) 94 diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py index d0b58e2..a0298ec 100644 --- a/TurtleArt/tacanvas.py +++ b/TurtleArt/tacanvas.py @@ -175,17 +175,18 @@ class TurtleGraphics: self.setgray(100, share) self.setcolor(0, share) self.settextcolor(70) - # self.settextsize(48) # depreciated self.setshade(50, share) self.setpen(True, share) for turtle_key in iter(self.tw.turtles.dict): self.set_turtle(turtle_key) self.tw.active_turtle.set_color(0) self.tw.active_turtle.set_shade(50) + self.tw.active_turtle.set_gray(100) self.tw.active_turtle.set_pen_size(5) self.tw.active_turtle.set_pen_state(True) self.seth(0, share) self.setxy(0, 0, share) + self.tw.active_turtle.hide() self.set_turtle(DEFAULT_TURTLE) self.tw.svg_string = '' self.svg.reset_min_max() @@ -628,6 +629,7 @@ class TurtleGraphics: self.setxy(0, 0, False) self.tw.active_turtle.set_pen_state(True) self.tw.active_turtle = self.tw.turtles.get_turtle(k, False) + self.tw.active_turtle.show() tx, ty = self.tw.active_turtle.get_xy() self.xcor = -self.width / 2 + tx + 28 self.ycor = self.height / 2 - ty - 30 diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py index 4765222..e53b58d 100644 --- a/TurtleArt/talogo.py +++ b/TurtleArt/talogo.py @@ -227,7 +227,8 @@ def stop_logo(tw): """ Stop logo is called from the Stop button on the toolbar """ tw.step_time = 0 tw.lc.step = just_stop() - tw.turtles.show_all() + # tw.turtles.show_all() + tw.active_turtle.show() def just_stop(): """ yield False to stop stack """ @@ -402,6 +403,8 @@ class LogoCode: self.iresults = None self.step = None + self.hidden_turtle = None + self.keyboard = 0 self.trace = 0 self.gplay = None @@ -458,7 +461,7 @@ class LogoCode: if run_flag: print "running code: %s" % (code) self.setup_cmd(code) - if self.tw.hide is False: + if not self.tw.hide: self.tw.display_coordinates() else: return code @@ -522,7 +525,8 @@ class LogoCode: def setup_cmd(self, string): """ Execute the psuedocode. """ - self.tw.active_turtle.hide() # Hide the turtle while we are running. + self.hidden_turtle = self.tw.active_turtle + self.hidden_turtle.hide() # Hide the turtle while we are running. self.procstop = False blklist = self.readline(string) self.step = self.start_eval(blklist) @@ -627,7 +631,7 @@ class LogoCode: raise logoerror(str(self.iresult)) self.iline = oldiline self.ireturn() - if self.tw.hide is False and self.tw.step_time > 0: + if not self.tw.hide and self.tw.step_time > 0: self.tw.display_coordinates() yield True @@ -707,7 +711,12 @@ class LogoCode: else: return False except StopIteration: - self.tw.turtles.show_all() + # self.tw.turtles.show_all() + if self.hidden_turtle is not None: + self.hidden_turtle.show() + self.hidden_turtle = None + else: + self.tw.active_turtle.show() return False except logoerror, e: self.tw.showlabel('syntaxerror', str(e)[1:-1]) @@ -774,6 +783,9 @@ class LogoCode: stop_media(self) self.tw.canvas.clearscreen() self.scale = _DEFAULT_SCALE + self.tw.set_polar(False) + self.tw.set_cartesian(False) + self.hidden_turtle = None def prim_start(self): """ Start block: recenter """ diff --git a/TurtleArt/taturtle.py b/TurtleArt/taturtle.py index 23344e2..abfb415 100644 --- a/TurtleArt/taturtle.py +++ b/TurtleArt/taturtle.py @@ -47,7 +47,7 @@ class Turtles: """ Find a turtle """ if self.dict.has_key(k): return self.dict[k] - elif append is False: + elif not append: return None else: if colors == None: @@ -132,7 +132,7 @@ class Turtle: """ Set the turtle heading (and shape: one per 10 degrees) """ self.heading = heading i = (int(self.heading+5)%360)/10 - if self.hidden is False and self.spr is not None: + if not self.hidden and self.spr is not None: try: self.spr.set_shape(self.shapes[i]) except IndexError: @@ -176,7 +176,7 @@ class Turtle: def move(self, pos): """ Move the turtle. """ self.x, self.y = pos[0], pos[1] - if self.hidden is False and self.spr is not None: + if not self.hidden and self.spr is not None: self.spr.move(pos) return(self.x, self.y) diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index 3afe00e..0e7c134 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -48,7 +48,8 @@ from taconstants import HORIZONTAL_PALETTE, VERTICAL_PALETTE, BLOCK_SCALE, \ CURSOR, EXPANDABLE, COLLAPSIBLE, RETURN, \ DEAD_DICTS, DEAD_KEYS, TEMPLATES, PYTHON_SKIN, \ PALETTE_HEIGHT, STATUS_LAYER, OLD_DOCK, OLD_NAMES, \ - BOOLEAN_STYLE, BLOCK_NAMES + BOOLEAN_STYLE, BLOCK_NAMES, DEFAULT_TURTLE, \ + TURTLE_LAYER from talogo import LogoCode, stop_logo from tacanvas import TurtleGraphics from tablock import Blocks, Block @@ -177,10 +178,10 @@ class TurtleArtWindow(): self.sprite_list = None # Sprites(self.window, None, self.gc) self.turtles = Turtles(self.sprite_list) if mycolors == None: - Turtle(self.turtles, 1) + Turtle(self.turtles, DEFAULT_TURTLE) else: - Turtle(self.turtles, 1, mycolors.split(',')) - self.active_turtle = self.turtles.get_turtle(1) + Turtle(self.turtles, DEFAULT_TURTLE, mycolors.split(',')) + self.active_turtle = self.turtles.get_turtle(DEFAULT_TURTLE) self.saving_svg = False self.svg_string = '' self.selected_turtle = None @@ -717,6 +718,7 @@ class TurtleArtWindow(): if self.selected_blk is not None: self._unselect_block() self.selected_turtle = None + # Always hide the status layer on a click if self.status_spr is not None: self.status_spr.hide() @@ -1143,6 +1145,7 @@ class TurtleArtWindow(): if dtype == 'move': dx = x - dragx - sx dy = y - dragy - sy + self.selected_turtle.spr.set_layer(TOP_LAYER) self.selected_turtle.move((sx + dx, sy + dy)) else: dx = x - sx - 30 @@ -1294,14 +1297,20 @@ class TurtleArtWindow(): # We may have been moving the turtle if self.selected_turtle is not None: (tx, ty) = self.selected_turtle.get_xy() - (cx, cy) = self.canvas.canvas.get_xy() - # self.canvas.xcor = tx - self.canvas.canvas._width/2 + 30 - cx - # self.canvas.ycor = self.canvas.canvas._height/2 - ty - 30 + cy - self.canvas.xcor = tx - self.canvas.width/2 + 30 - cx - self.canvas.ycor = self.canvas.height/2 - ty - 30 + cy - self.canvas.move_turtle() - if self.running_sugar: - self.display_coordinates() + k = self.turtles.get_turtle_key(self.selected_turtle) + + # Remove turtles by dragging them onto the trash palette. + if k != DEFAULT_TURTLE and self._in_the_trash(tx, ty): + self.selected_turtle.hide() + self.turtles.remove_from_dict(k) + else: + (cx, cy) = self.canvas.canvas.get_xy() + self.canvas.xcor = tx - self.canvas.width/2 + 30 - cx + self.canvas.ycor = self.canvas.height/2 - ty - 30 + cy + self.canvas.move_turtle() + if self.running_sugar: + self.display_coordinates() + self.selected_turtle.spr.set_layer(TURTLE_LAYER) self.selected_turtle = None return |