'Select the first shape created which contains this point.'

def selectShapePoint(self, point):

    self.deSelectShape()
    if self.selectedVertex():
        (index, shape) = (self.hVertex, self.hShape)
        shape.highlightVertex(index, shape.MOVE_VERTEX)
        return
    for shape in reversed(self.shapes):
        if (self.isVisible(shape) and shape.containsPoint(point)):
            shape.selected = True
            self.selectedShape = shape
            self.calculateOffsets(shape, point)
            self.setHiding()
            self.selectionChanged.emit(True)
            return
