From 13d00d176f2d4d704fe8835eb4fe0813b38279d9 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 18 Mar 2022 16:50:34 +0100 Subject: [PATCH] support for QGradient::Preset --- src/common/QskGradient.cpp | 16 ++++++++++++++++ src/common/QskGradient.h | 9 ++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/common/QskGradient.cpp b/src/common/QskGradient.cpp index 7e1ec065..247369cb 100644 --- a/src/common/QskGradient.cpp +++ b/src/common/QskGradient.cpp @@ -179,6 +179,16 @@ static inline QskGradientStops qskExtractedStops( return extracted; } +static inline QskGradientStops qskGradientStops( const QGradientStops& qtStops ) +{ + QskGradientStops stops; + + for ( const auto& s : qtStops ) + stops += QskGradientStop( s.first, s.second ); + + return stops; +} + QskGradient::QskGradient( Orientation orientation ) : m_orientation( orientation ) , m_isDirty( false ) @@ -218,6 +228,12 @@ QskGradient::QskGradient( Orientation orientation, const QskGradientStops& stops setStops( stops ); } +QskGradient::QskGradient( Orientation orientation, QGradient::Preset preset ) + : QskGradient( orientation ) +{ + setStops( qskGradientStops( QGradient( preset ).stops() ) ); +} + QskGradient::~QskGradient() { } diff --git a/src/common/QskGradient.h b/src/common/QskGradient.h index 01b0bc4a..c0544bfd 100644 --- a/src/common/QskGradient.h +++ b/src/common/QskGradient.h @@ -9,7 +9,7 @@ #include "QskGlobal.h" #include "QskGradientStop.h" -#include +#include #include #include @@ -48,12 +48,14 @@ class QSK_EXPORT QskGradient QskGradient( Qt::GlobalColor ); QskGradient( QRgb ); QskGradient( const QColor& ); + QskGradient( QGradient::Preset ); QskGradient( Qt::Orientation, const QVector< QskGradientStop >& ); QskGradient( Qt::Orientation, const QColor&, const QColor& ); QskGradient( Orientation, const QVector< QskGradientStop >& ); QskGradient( Orientation, const QColor&, const QColor& ); + QskGradient( Orientation, QGradient::Preset ); ~QskGradient(); @@ -133,6 +135,11 @@ inline QskGradient::QskGradient( QRgb rgb ) { } +inline QskGradient::QskGradient( QGradient::Preset preset ) + : QskGradient( Vertical, preset ) +{ +} + inline QskGradient::Orientation QskGradient::orientation() const { return static_cast< Orientation >( m_orientation );