def onMouseClick(self, event): if event.button() == Qt.RightButton: if not self._started: self._surface.cancelTool() return self._started = False self._track = None self._invalidate() self._nodes = self._recalcPath() self._invalidate() return if self._surface.position() == self._lastPoint: return if event.button() == Qt.LeftButton: if not self._started: self._started = True else: if not self._track: self._track = Track(QPointF(0, 0), self._nodes, self._width, self._surface.currentLayer()) self._surface.addItem(self._track) else: self._track.addNodes(self._nodes) self._lastPoint = self._surface.position() self._recalcPath()