diff options
Diffstat (limited to 'scribblewidget.py')
-rw-r--r-- | scribblewidget.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/scribblewidget.py b/scribblewidget.py index 3406890..5932a60 100644 --- a/scribblewidget.py +++ b/scribblewidget.py @@ -93,6 +93,8 @@ class ScribbleWidget(goocanvas.Canvas): self.item = goocanvas.Polyline(parent=self._root, \ points=goocanvas.Points(self.line_points), \ stroke_color_rgba = self._stroke_color, title=self.item_id) + elif self.tool == 'eraser': + self.item = self.get_item_at(x, y, True) else: pass @@ -121,6 +123,10 @@ class ScribbleWidget(goocanvas.Canvas): self.item.props.points = goocanvas.Points(self.line_points) self.item_orig_x = x self.item_orig_y = y + elif self.tool == 'eraser': + self.item = self.get_item_at(x, y, True) + else: + pass self.prev_time = time @@ -130,7 +136,7 @@ class ScribbleWidget(goocanvas.Canvas): def get_cmd_list(self): return self.cmd_list - def process_item_finalize(self): + def process_item_finalize(self, x, y): if self.tool == 'circle': self.cmd = "goocanvas.Ellipse(parent=self._root, center_x=%d, \ center_y=%d, radius_x = %d, radius_y = %d, \ @@ -151,6 +157,13 @@ class ScribbleWidget(goocanvas.Canvas): points=goocanvas.Points(%s), stroke_color_rgba = %d, \ title = '%s')" % (str(self.line_points), self._stroke_color, \ self.item_id) + elif self.tool == 'eraser': + if self.item is not None: + self.item.remove() + # Maybe we can use the item title (uuid) and use it instead + self.cmd = "self.get_item_at(%f, %f, True).remove()" % (x, y) + else: + pass #print self.cmd @@ -182,7 +195,7 @@ class ScribbleWidget(goocanvas.Canvas): def on_button_release(self, canvas, event): canvas.pointer_ungrab(self.item, event.time) - self.process_item_finalize() + self.process_item_finalize(event.x, event.y) return True def on_motion(self, canvas, event): |