9void pathLineBy(QPainterPath& pp,
double x,
double y)
11 const auto c = pp.currentPosition();
12 pp.lineTo(c.x() + x, c.y() + y);
15const double arrowDim1 = 20.0;
16const double arrowEndOffset = 30;
24 pp.moveTo(
g.center().x(), 0.0);
25 pp.lineTo(
g.center().x() + arrowDim1, arrowDim1);
26 pp.lineTo(
g.right(), arrowDim1);
27 pp.lineTo(
g.right(),
g.bottom());
28 pp.lineTo(
g.left(),
g.bottom());
29 pp.lineTo(
g.left(), arrowDim1);
30 pp.lineTo(
g.center().x() - arrowDim1, arrowDim1);
35 pp.moveTo(
g.right() - arrowEndOffset,
g.bottom());
36 pathLineBy(pp, arrowDim1, -arrowDim1);
37 pp.lineTo(
g.right(),
g.bottom() - arrowDim1);
38 pp.lineTo(
g.right(),
g.top());
39 pp.lineTo(
g.left(),
g.top());
40 pp.lineTo(
g.left(),
g.bottom() - arrowDim1);
41 pp.lineTo(
g.right() - arrowEndOffset - arrowDim1,
g.bottom() - arrowDim1);
46 pp.moveTo(
g.right() - arrowEndOffset, 0.0);
47 pathLineBy(pp, arrowDim1, arrowDim1);
48 pp.lineTo(
g.right(), arrowDim1);
49 pp.lineTo(
g.right(),
g.bottom());
50 pp.lineTo(
g.left(),
g.bottom());
51 pp.lineTo(
g.left(), arrowDim1);
52 pp.lineTo(
g.right() - (arrowEndOffset + arrowDim1), arrowDim1);
57 pp.moveTo(arrowEndOffset, 0.0);
58 pathLineBy(pp, arrowDim1, arrowDim1);
59 pp.lineTo(
g.right(), arrowDim1);
60 pp.lineTo(
g.right(),
g.bottom());
61 pp.lineTo(
g.left(),
g.bottom());
62 pp.lineTo(
g.left(), arrowDim1);
63 pp.lineTo(arrowEndOffset - arrowDim1, arrowDim1);
68 pp.moveTo(0.0,
g.center().y());
69 pathLineBy(pp, arrowDim1, -arrowDim1);
70 pp.lineTo(arrowDim1,
g.top());
71 pp.lineTo(
g.right(),
g.top());
72 pp.lineTo(
g.right(),
g.bottom());
73 pp.lineTo(arrowDim1,
g.bottom());
74 pp.lineTo(arrowDim1,
g.center().y() + arrowDim1);
79 pp.moveTo(
g.right(),
g.center().y());
80 pathLineBy(pp, -arrowDim1, arrowDim1);
81 pp.lineTo(
g.right() - arrowDim1,
g.bottom());
82 pp.lineTo(
g.left(),
g.bottom());
83 pp.lineTo(
g.left(),
g.top());
84 pp.lineTo(
g.right() - arrowDim1,
g.top());
85 pp.lineTo(
g.right() - arrowDim1,
g.center().y() - arrowDim1);
91 pp.moveTo(0.0,
g.top() + arrowDim1);
92 pathLineBy(pp, arrowDim1, -arrowDim1);
93 pp.lineTo(
g.right(),
g.top());
94 pp.lineTo(
g.right(),
g.bottom());
95 pp.lineTo(
g.left() + arrowDim1,
g.bottom());
96 pp.lineTo(
g.left() + arrowDim1, -
g.left() + arrowDim1);
101 pp.moveTo(0.0,
g.top());
102 pp.lineTo(
g.right(),
g.top());
103 pp.lineTo(
g.right(),
g.bottom());
104 pp.lineTo(0.0,
g.bottom());
110 qWarning() << Q_FUNC_INFO <<
"unhandled:" << arrow;
122 return static_cast<int>(arrowEndOffset);
127 return static_cast<int>(arrowDim1);
131 QQuickPaintedItem(pr)
197 QPainterPath pp = pathFromArrowAndGeometry(_arrow, QRectF{0.0,0.0,width(), height()});
198 painter->setBrush(_fill);
199 painter->setPen(QPen{_borderColor,
static_cast<double>(_borderWidth)});
200 painter->drawPath(pp);
void setBorderWidth(int borderWidth)
void setFill(QColor fill)
TipBackgroundBox(QQuickItem *parent=nullptr)
GettingStartedTip::Arrow arrowPosition() const
void fillChanged(QColor fill)
void setArrowPosition(GettingStartedTip::Arrow arrow)
void borderWidthChanged(int borderWidth)
static int arrowSideOffset()
void setBorderColor(QColor borderColor)
void borderColorChanged(QColor borderColor)
void arrowPositionChanged(GettingStartedTip::Arrow arrow)
GettingStartedTip::Arrow arrow
void paint(QPainter *painter) override