preset color buttons rework + curve smoothing
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s

This commit is contained in:
2026-06-20 13:24:47 +02:00
parent ca1243f9c7
commit fc9be754fd
6 changed files with 103 additions and 49 deletions
+17 -1
View File
@@ -13,6 +13,20 @@ QCanvasPainterItemRenderer *StrokeCanvasItem::createItemRenderer() const {
return new StrokeCanvasRenderer;
}
static bool shouldAddPoint(
const QVector<QPointF> &points,
const QPointF &p,
qreal minDistance)
{
if (points.isEmpty())
return true;
const QPointF delta = p - points.last();
return QPointF::dotProduct(delta, delta)
>= minDistance * minDistance;
}
void StrokeCanvasItem::setPenColor(const QColor &color) {
if (m_penColor == color)
return;
@@ -44,7 +58,9 @@ void StrokeCanvasItem::beginStroke(qreal x, qreal y) {
}
void StrokeCanvasItem::appendPoint(qreal x, qreal y) {
m_currentStroke.points.append({x, y});
if (shouldAddPoint(m_currentStroke.points, {x, y}, 2.0))
m_currentStroke.points.append({x, y});
update();
}