Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--TurtleArt/tacanvas.py4
-rw-r--r--TurtleArt/talogo.py22
-rw-r--r--TurtleArt/taturtle.py6
-rw-r--r--TurtleArt/tawindow.py33
5 files changed, 47 insertions, 21 deletions
diff --git a/NEWS b/NEWS
index 47c7c03..70dd9f0 100644
--- a/NEWS
+++ b/NEWS
@@ -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