diff --git a/src/common/QskArcMetrics.cpp b/src/common/QskArcMetrics.cpp index 545ce2ae..81f3ac01 100644 --- a/src/common/QskArcMetrics.cpp +++ b/src/common/QskArcMetrics.cpp @@ -73,17 +73,27 @@ QVariant QskArcMetrics::interpolate( } QskArcMetrics QskArcMetrics::toAbsolute( const QSizeF& size ) const noexcept +{ + if ( size.width() < 0.0 ) + return toAbsolute( size.height() ); + + if ( size.height() < 0.0 ) + return toAbsolute( size.width() ); + + return toAbsolute( qMin( size.width(), size.height() ) ); +} + +QskArcMetrics QskArcMetrics::toAbsolute( qreal size ) const noexcept { if ( m_sizeMode != Qt::RelativeSize ) return *this; QskArcMetrics absoluted = *this; - const auto l = qMin( size.width(), size.height() ); - if ( l <= 0.0 ) + if ( size <= 0.0 ) absoluted.m_thickness = 0.0; else - absoluted.m_thickness = qskAbsoluted( l, absoluted.m_thickness ); + absoluted.m_thickness = qskAbsoluted( size, absoluted.m_thickness ); absoluted.m_sizeMode = Qt::AbsoluteSize; diff --git a/src/common/QskArcMetrics.h b/src/common/QskArcMetrics.h index a211bf42..b2ce35ce 100644 --- a/src/common/QskArcMetrics.h +++ b/src/common/QskArcMetrics.h @@ -55,6 +55,7 @@ class QSK_EXPORT QskArcMetrics qreal value ) const noexcept; QskArcMetrics toAbsolute( const QSizeF& ) const noexcept; + QskArcMetrics toAbsolute( qreal ) const noexcept; QskHashValue hash( QskHashValue seed = 0 ) const noexcept;