support for QGradient::Preset

This commit is contained in:
Uwe Rathmann 2022-03-18 16:50:34 +01:00
parent b02e6ccbc3
commit 13d00d176f
2 changed files with 24 additions and 1 deletions

View File

@ -179,6 +179,16 @@ static inline QskGradientStops qskExtractedStops(
return extracted; 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 ) QskGradient::QskGradient( Orientation orientation )
: m_orientation( orientation ) : m_orientation( orientation )
, m_isDirty( false ) , m_isDirty( false )
@ -218,6 +228,12 @@ QskGradient::QskGradient( Orientation orientation, const QskGradientStops& stops
setStops( stops ); setStops( stops );
} }
QskGradient::QskGradient( Orientation orientation, QGradient::Preset preset )
: QskGradient( orientation )
{
setStops( qskGradientStops( QGradient( preset ).stops() ) );
}
QskGradient::~QskGradient() QskGradient::~QskGradient()
{ {
} }

View File

@ -9,7 +9,7 @@
#include "QskGlobal.h" #include "QskGlobal.h"
#include "QskGradientStop.h" #include "QskGradientStop.h"
#include <qcolor.h> #include <qbrush.h>
#include <qmetatype.h> #include <qmetatype.h>
#include <qvector.h> #include <qvector.h>
@ -48,12 +48,14 @@ class QSK_EXPORT QskGradient
QskGradient( Qt::GlobalColor ); QskGradient( Qt::GlobalColor );
QskGradient( QRgb ); QskGradient( QRgb );
QskGradient( const QColor& ); QskGradient( const QColor& );
QskGradient( QGradient::Preset );
QskGradient( Qt::Orientation, const QVector< QskGradientStop >& ); QskGradient( Qt::Orientation, const QVector< QskGradientStop >& );
QskGradient( Qt::Orientation, const QColor&, const QColor& ); QskGradient( Qt::Orientation, const QColor&, const QColor& );
QskGradient( Orientation, const QVector< QskGradientStop >& ); QskGradient( Orientation, const QVector< QskGradientStop >& );
QskGradient( Orientation, const QColor&, const QColor& ); QskGradient( Orientation, const QColor&, const QColor& );
QskGradient( Orientation, QGradient::Preset );
~QskGradient(); ~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 inline QskGradient::Orientation QskGradient::orientation() const
{ {
return static_cast< Orientation >( m_orientation ); return static_cast< Orientation >( m_orientation );