gizmos: draw shadow so they're still visible on white backdrop

Fixes #2142
This commit is contained in:
itsmattkc
2023-02-21 15:02:13 -08:00
parent f9718cdeb0
commit 32c8d08a10
4 changed files with 26 additions and 5 deletions
+9 -2
View File
@@ -29,9 +29,16 @@ LineGizmo::LineGizmo(QObject *parent) :
void LineGizmo::Draw(QPainter *p) const
{
p->setBrush(Qt::NoBrush);
p->setPen(QPen(Qt::white, 0));
// Draw transposed black
QLineF transposed = p->transform().map(line_);
transposed.translate(1, 1);
transposed = p->transform().inverted().map(transposed);
p->setPen(QPen(Qt::black, 0));
p->drawLine(transposed);
// Draw normal white polygon
p->setPen(QPen(Qt::white, 0));
p->setBrush(Qt::NoBrush);
p->drawLine(line_);
}
+8 -1
View File
@@ -30,9 +30,16 @@ PathGizmo::PathGizmo(QObject *parent) :
void PathGizmo::Draw(QPainter *p) const
{
// Draw transposed black
QPainterPath transposed = p->transform().map(path_);
transposed.translate(1, 1);
transposed = p->transform().inverted().map(transposed);
p->setPen(QPen(Qt::black, 0));
p->drawPath(transposed);
// Draw normal white polygon
p->setPen(QPen(Qt::white, 0));
p->setBrush(Qt::NoBrush);
p->drawPath(path_);
}
+1 -1
View File
@@ -46,7 +46,7 @@ void PointGizmo::Draw(QPainter *p) const
QRectF rect = GetDrawingRect(p->transform(), GetStandardRadius());
if (shape_ != kAnchorPoint) {
p->setPen(Qt::NoPen);
p->setPen(QPen(Qt::black, 0));
p->setBrush(Qt::white);
}
+8 -1
View File
@@ -29,9 +29,16 @@ PolygonGizmo::PolygonGizmo(QObject *parent)
void PolygonGizmo::Draw(QPainter *p) const
{
// Draw transposed black
QPolygonF transposed = p->transform().map(polygon_);
transposed.translate(1, 1);
transposed = p->transform().inverted().map(transposed);
p->setPen(QPen(Qt::black, 0));
p->drawPolyline(transposed);
// Draw normal white polygon
p->setPen(QPen(Qt::white, 0));
p->setBrush(Qt::NoBrush);
p->drawPolyline(polygon_);
}