From 7a66d26887ecf057ca59713699e004059f7791b6 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 15 Dec 2021 15:54:44 +0100 Subject: [PATCH] fix borders for rect ellipses --- src/nodes/QskBoxRendererEllipse.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/nodes/QskBoxRendererEllipse.cpp b/src/nodes/QskBoxRendererEllipse.cpp index 45340a50..df7ae3ca 100644 --- a/src/nodes/QskBoxRendererEllipse.cpp +++ b/src/nodes/QskBoxRendererEllipse.cpp @@ -14,6 +14,8 @@ #include #include +#include // ### remove + using namespace QskVertex; namespace @@ -1207,9 +1209,20 @@ void QskBoxRenderer::renderRectellipse( const QRectF& rect, const int stepCount = metrics.corner[ 0 ].stepCount; int borderLineCount = 0; + if ( borderColors.isVisible() && metrics.innerQuad != metrics.outerQuad ) + { borderLineCount = 4 * ( stepCount + 1 ) + 1; + const int additionalLines = -1 + + borderColors.gradient( Qsk::Left ).stops().count() - 1 + + borderColors.gradient( Qsk::Top ).stops().count() - 1 + + borderColors.gradient( Qsk::Right ).stops().count() - 1 + + borderColors.gradient( Qsk::Bottom ).stops().count() - 1; + + borderLineCount += qMax( additionalLines, 0 ); + } + int lineCount = borderLineCount + fillLineCount; bool extraLine = false; @@ -1286,6 +1299,7 @@ void QskBoxRenderer::renderRectellipse( const QRectF& rect, borderLines++; const auto orientation = qskQtOrientation( gradient ); + qDebug() << "border line count:" << borderLineCount; qskRenderBorder( metrics, orientation, borderColors, borderLines ); if ( extraLine )