From 1dcd59e307524985c9f8aa566bf73992e3b189c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fauconnier?= Date: Tue, 19 Dec 2017 23:47:39 +0100 Subject: [PATCH] changed old compass behavior to match with new strokes simplification --- src/domain/UBGraphicsScene.cpp | 1 + src/frameworks/UBGeometryUtils.cpp | 21 ++++++--------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 95fd9a0d..c6ffe7e3 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1094,6 +1094,7 @@ void UBGraphicsScene::drawArcTo(const QPointF& pCenterPoint, qreal pSpanAngle) penWidth /= UBApplication::boardController->currentZoom(); mArcPolygonItem = arcToPolygonItem(QLineF(pCenterPoint, mPreviousPoint), pSpanAngle, penWidth); + mArcPolygonItem->setFillRule(Qt::WindingFill); mArcPolygonItem->setStroke(mCurrentStroke); mAddedItems.insert(mArcPolygonItem); addItem(mArcPolygonItem); diff --git a/src/frameworks/UBGeometryUtils.cpp b/src/frameworks/UBGeometryUtils.cpp index 01c1fe1a..3dabcc5c 100644 --- a/src/frameworks/UBGeometryUtils.cpp +++ b/src/frameworks/UBGeometryUtils.cpp @@ -225,21 +225,12 @@ QPolygonF UBGeometryUtils::arcToPolygon(const QLineF& startRadius, qreal spanAng endAngleInDegrees = - endAngleInDegrees; spanAngleInDegrees = - spanAngleInDegrees; - if (overlap) - { - painterPath.addEllipse(outerSquare); - QPainterPath innerPainterPath; - innerPainterPath.addEllipse(innerSquare); - painterPath = painterPath.subtracted(innerPainterPath); - } - else - { - painterPath.arcTo(innerSquare, startAngleInDegrees, spanAngleInDegrees); - painterPath.arcTo(endSquare, 180.0 + endAngleInDegrees, spanAngleInDegrees > 0 ? -180.0 : 180.0); - painterPath.arcTo(outerSquare, endAngleInDegrees, - spanAngleInDegrees); - painterPath.arcTo(startSquare, startAngleInDegrees, spanAngleInDegrees > 0 ? -180.0 : 180.0); - painterPath.closeSubpath(); - } + painterPath.setFillRule(Qt::WindingFill); + painterPath.arcTo(innerSquare, startAngleInDegrees, spanAngleInDegrees); + painterPath.arcTo(endSquare, 180.0 + endAngleInDegrees, spanAngleInDegrees > 0 ? -180.0 : 180.0); + painterPath.arcTo(outerSquare, endAngleInDegrees, - spanAngleInDegrees); + painterPath.arcTo(startSquare, startAngleInDegrees, spanAngleInDegrees > 0 ? -180.0 : 180.0); + painterPath.closeSubpath(); return painterPath.toFillPolygon(); }