From af1f5b87570acce7adf7bbcaa4e072d1f7f43c3d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 9 Dec 2022 11:23:32 +0100 Subject: [PATCH] QGradint converters fixed --- src/common/QskGradient.cpp | 53 ++++++++++++++++++-------------------- src/common/QskGradient.h | 4 +-- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/common/QskGradient.cpp b/src/common/QskGradient.cpp index 20775c2a..cdb9834b 100644 --- a/src/common/QskGradient.cpp +++ b/src/common/QskGradient.cpp @@ -76,18 +76,15 @@ QskGradient::QskGradient( const QVector< QskGradientStop >& stops ) setStops( stops ); } -QskGradient::QskGradient( const QGradient* qGradient ) +QskGradient::QskGradient( const QGradient& qGradient ) { - if ( qGradient == nullptr ) - return; - - switch( qGradient->type() ) + switch( qGradient.type() ) { case QGradient::LinearGradient: { m_type = Linear; - const auto g = static_cast< const QLinearGradient* >( qGradient ); + const auto g = static_cast< const QLinearGradient* >( &qGradient ); m_values[0] = g->start().x(); m_values[1] = g->start().y(); @@ -100,7 +97,7 @@ QskGradient::QskGradient( const QGradient* qGradient ) { m_type = Radial; - const auto g = static_cast< const QRadialGradient* >( qGradient ); + const auto g = static_cast< const QRadialGradient* >( &qGradient ); if ( ( g->center() != g->focalPoint() ) || ( g->radius() != g->focalRadius() ) ) qWarning() << "QskGradient: extended radial gradients are not supported."; @@ -116,7 +113,7 @@ QskGradient::QskGradient( const QGradient* qGradient ) { m_type = Conic; - const auto g = static_cast< const QConicalGradient* >( qGradient ); + const auto g = static_cast< const QConicalGradient* >( &qGradient ); m_values[0] = g->center().x(); m_values[1] = g->center().y(); @@ -132,8 +129,8 @@ QskGradient::QskGradient( const QGradient* qGradient ) } } - m_spread = static_cast< Spread >( qGradient->spread() ); - m_stops = qskBuildGradientStops( qGradient->stops() ); + m_spread = static_cast< Spread >( qGradient.spread() ); + setStops( qskBuildGradientStops( qGradient.stops() ) ); } QskGradient::QskGradient( const QskGradient& other ) noexcept @@ -594,26 +591,26 @@ void QskGradient::resetDirection() m_values[0] = m_values[1] = m_values[2] = m_values[3] = 0.0; } -QGradient* QskGradient::toQGradient() const +QGradient QskGradient::toQGradient() const { - QGradient* qGradient = nullptr; - switch( m_type ) { case Linear: { - qGradient = new QLinearGradient( - m_values[0], m_values[1], m_values[2], m_values[3] ); + QLinearGradient g( m_values[0], m_values[1], m_values[2], m_values[3] ); + g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); + g.setStops( qskToQGradientStops( m_stops ) ); - break; + return g; } case Radial: { - qGradient = new QRadialGradient( - m_values[0], m_values[1], m_values[2] ); + QRadialGradient g( m_values[0], m_values[1], m_values[2] ); + g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); + g.setStops( qskToQGradientStops( m_stops ) ); - break; + return g; } case Conic: @@ -624,22 +621,22 @@ QGradient* QskGradient::toQGradient() const "QskGradient: spanAngle got lost, when converting to QConicalGradient"; } - qGradient = new QConicalGradient( - m_values[0], m_values[1], m_values[2] ); + QConicalGradient g( m_values[0], m_values[1], m_values[2] ); + g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); + g.setStops( qskToQGradientStops( m_stops ) ); - break; + return g; } default: { - qGradient = new QGradient(); + QGradient g; + g.setSpread( static_cast< QGradient::Spread >( m_spread ) ); + g.setStops( qskToQGradientStops( m_stops ) ); + + return g; } } - - qGradient->setSpread( static_cast< QGradient::Spread >( m_spread ) ); - qGradient->setStops( qskToQGradientStops( m_stops ) ); - - return qGradient; } #ifndef QT_NO_DEBUG_STREAM diff --git a/src/common/QskGradient.h b/src/common/QskGradient.h index ae5700f1..14d8d296 100644 --- a/src/common/QskGradient.h +++ b/src/common/QskGradient.h @@ -66,7 +66,7 @@ class QSK_EXPORT QskGradient QskGradient( QGradient::Preset ); QskGradient( const QskGradientStops& ); - QskGradient( const QGradient* ); + QskGradient( const QGradient& ); QskGradient( const QskGradient& ) noexcept; @@ -143,7 +143,7 @@ class QSK_EXPORT QskGradient int stepCount() const noexcept; - QGradient* toQGradient() const; + QGradient toQGradient() const; private: void updateStatusBits() const;