Beispiel #1
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        dx = self.start_point[0] - self.end_point[0]
        dy = self.start_point[1] - self.end_point[1]
        l = QtCore.QLineF(dx, dy, 0, 0)

        if self._hovering:
            tops = self.host.get_highest()
            if len(tops) != 1:
                painter.drawLine(l)
                painter.save()
                painter.setBrush(ctrl.cm.ui())
                painter.rotate(20)
                draw_leaf(painter, 0, 0, symbol_radius)
                painter.restore()
                draw_plus(painter, 1.2 * symbol_radius, 0)
                return
            else:
                top = tops[0]
                lmx, lmy = top.magnet(5)
                scene_point = QtCore.QPointF(lmx, lmy)
                end_point = self.mapFromScene(scene_point)
                path = QtGui.QPainterPath(QtCore.QPointF(dx, dy))
                path.quadTo(QtCore.QPointF(end_point.x() - 200, end_point.y()), end_point)
                painter.drawPath(path)
                l = QtCore.QLineF(QtCore.QPointF(end_point.x() - 200, end_point.y()), end_point)
        else:
            painter.drawLine(l)

        l2x = l.p2().x()
        l2 = l.p2()
        l2y = l.p2().y()
        head_size = 8.0
        back = head_size / -2
        # Draw the arrows if there's enough room.
        ll = l.length()
        if ll >= 1 and ll + back > 0:
            angle = math.acos(l.dx() / ll)  # acos has to be <= 1.0
        else:
            return
        prop = back / ll
        if l.dy() >= 0:
            angle = (math.pi * 2.0) - angle
        destArrowP1 = QtCore.QPointF((math.sin(angle - math.pi / 3) * head_size) + l2x,
                                     (math.cos(angle - math.pi / 3) * head_size) + l2y)
        destArrowP2 = QtCore.QPointF((math.sin(angle - math.pi + math.pi / 3) * head_size) + l2x,
                                     (math.cos(angle - math.pi + math.pi / 3) * head_size) + l2y)
        l2c = QtCore.QPointF(l.dx() * prop + l2x, l.dy() * prop + l2y)
        painter.setBrush(c)
        painter.drawPolygon(QtGui.QPolygonF([l2, destArrowP1, l2c, destArrowP2]))
Beispiel #2
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        if self._fill_path:
            painter.fillPath(self._path, c)
        else:
            painter.drawPath(self._path)
        if self._hovering:
            if len(self.host.trees) == 1:
                top = list(self.host.trees)[0].top
                scene_point = QtCore.QPointF(*top.current_scene_position)
                end_point = self.mapFromScene(scene_point)
                path = QtGui.QPainterPath(QtCore.QPointF(0, 0))
                path.quadTo(QtCore.QPointF(end_point.x() - 200, end_point.y()), end_point)
                painter.drawPath(path)
            else:
                painter.save()
                painter.setBrush(ctrl.cm.ui())
                painter.rotate(20)
                draw_leaf(painter, 0, end_spot_size / 2, end_spot_size)
                painter.restore()
                draw_plus(painter, 4, 0)
Beispiel #3
0
 def paint(self, painter, option, widget):
     if ctrl.pressed is self:
         pass
     c = self.contextual_color()
     if self._hovering:
         painter.setBrush(ctrl.cm.ui_tr())
     else:
         painter.setBrush(qt_prefs.no_brush)
     painter.setPen(c)
     draw_tailed_leaf(painter, 0, 0, symbol_radius)
     if self._hovering:
         painter.setPen(c)
         draw_plus(painter, 1.2 * symbol_radius, 0)
Beispiel #4
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        draw_plus(painter, -5, 5)
        #painter.setBrush(c)
        draw_arrow_shape_from_points(painter, -2, 0, 8, 7, c)
        if self._hovering:
            painter.drawRoundedRect(self.boundingRect(), 4, 4)
Beispiel #5
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        draw_plus(painter, -5, 5)
        #painter.setBrush(c)
        draw_arrow_shape_from_points(painter, -2, 0, 8, 7, c)
        if self._hovering:
            painter.drawRoundedRect(self.boundingRect(), 4, 4)
Beispiel #6
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        if self._hovering:
            painter.setBrush(ctrl.cm.ui_tr())
        else:
            painter.setBrush(qt_prefs.no_brush)
        painter.setPen(c)
        draw_tailed_leaf(painter, 0, 0, end_spot_size)
        if self._hovering:
            painter.setPen(c)
            draw_plus(painter, 4, 0)
Beispiel #7
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        if self._hovering:
            painter.setBrush(ctrl.cm.ui_tr())
        else:
            painter.setBrush(qt_prefs.no_brush)
        painter.setPen(c)
        draw_tailed_leaf(painter, 0, 0, end_spot_size)
        if self._hovering:
            painter.setPen(c)
            draw_plus(painter, 4, 0)
Beispiel #8
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        painter.drawLine(*sub_xy(self.start_point, self.end_point), 0, 0)
        if self._hovering:
            painter.save()
            painter.setBrush(ctrl.cm.ui())
            painter.rotate(-160)
            draw_leaf(painter, 0, BranchingTouchArea.spot_size / 2,
                      BranchingTouchArea.spot_size)
            painter.restore()
            draw_plus(painter, 14, 0)
Beispiel #9
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        sx, sy = self.start_point
        ex, ey = self.end_point
        painter.drawLine(sx - ex, sy - ey, 0, 0)
        if self._hovering:
            painter.save()
            painter.setBrush(ctrl.cm.ui())
            painter.rotate(-20)
            draw_leaf(painter, 0, 0, symbol_radius)
            painter.restore()
            draw_plus(painter, 1.2 * symbol_radius, 0)
Beispiel #10
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        if self._fill_path:
            painter.fillPath(self._path, c)
        else:
            painter.drawPath(self._path)
        if self._hovering:
            painter.save()
            painter.setBrush(ctrl.cm.ui())
            painter.rotate(-160)
            draw_leaf(painter, 0, 0, symbol_radius)
            painter.restore()
            draw_plus(painter, 1.2 * symbol_radius, 0)
Beispiel #11
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        if self._fill_path:
            painter.fillPath(self._path, c)
        else:
            painter.drawPath(self._path)
        if self._hovering:
            painter.save()
            painter.setBrush(ctrl.cm.ui())
            painter.rotate(20)
            draw_leaf(painter, 0, end_spot_size / 2, end_spot_size)
            painter.restore()
            draw_plus(painter, 4, 0)
Beispiel #12
0
    def paint(self, painter, option, widget):
        """

        :param painter:
        :param option:
        :param widget:
        :raise:
        """
        if ctrl.pressed is self:
            pass
        c = self.contextual_color()
        painter.setPen(c)
        dx = self.start_point[0] - self.end_point[0]
        dy = self.start_point[1] - self.end_point[1]
        l = QtCore.QLineF(dx, dy, 0, 0)

        if self._hovering:
            if len(self.host.trees) != 1:
                painter.drawLine(l)
                painter.save()
                painter.setBrush(ctrl.cm.ui())
                painter.rotate(20)
                draw_leaf(painter, 0, end_spot_size / 2, end_spot_size)
                painter.restore()
                draw_plus(painter, 4, 0)
                return
            else:
                top = list(self.host.trees)[0].top
                lmx, lmy = top.magnet(5)
                scene_point = QtCore.QPointF(lmx, lmy)
                end_point = self.mapFromScene(scene_point)
                path = QtGui.QPainterPath(QtCore.QPointF(dx, dy))
                path.quadTo(QtCore.QPointF(end_point.x() - 200, end_point.y()),
                            end_point)
                painter.drawPath(path)
                l = QtCore.QLineF(
                    QtCore.QPointF(end_point.x() - 200, end_point.y()),
                    end_point)
        else:
            painter.drawLine(l)

        l2x = l.p2().x()
        l2 = l.p2()
        l2y = l.p2().y()
        head_size = 8.0
        back = head_size / -2
        # Draw the arrows if there's enough room.
        ll = l.length()
        if ll >= 1 and ll + back > 0:
            angle = math.acos(l.dx() / ll)  # acos has to be <= 1.0
        else:
            return
        prop = back / ll
        if l.dy() >= 0:
            angle = (math.pi * 2.0) - angle
        destArrowP1 = QtCore.QPointF(
            (math.sin(angle - math.pi / 3) * head_size) + l2x,
            (math.cos(angle - math.pi / 3) * head_size) + l2y)
        destArrowP2 = QtCore.QPointF(
            (math.sin(angle - math.pi + math.pi / 3) * head_size) + l2x,
            (math.cos(angle - math.pi + math.pi / 3) * head_size) + l2y)
        l2c = QtCore.QPointF(l.dx() * prop + l2x, l.dy() * prop + l2y)
        painter.setBrush(c)
        painter.drawPolygon(
            QtGui.QPolygonF([l2, destArrowP1, l2c, destArrowP2]))