From 76248e480b74bafc022ae5143dd1e093e7dbb68f Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 12 Apr 2023 12:18:32 +0200 Subject: [PATCH] QskArcMetrics::toAbsolute version with qreal added --- src/common/QskArcMetrics.cpp | 16 +++++++++++++--- src/common/QskArcMetrics.h | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) 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;