making QskGradient types acessible for QML ( mot 100% happy with using
lists )
This commit is contained in:
parent
f988805f95
commit
0fb4b25bba
|
@ -11,6 +11,8 @@ GridBox
|
|||
|
||||
background
|
||||
{
|
||||
linear: [ 0.0, 0.0, 1.0, 0.0 ]
|
||||
|
||||
stops: [
|
||||
{ position: 0.0, color: "Red" },
|
||||
{ position: 1.0, color: "Yellow" },
|
||||
|
|
|
@ -386,6 +386,68 @@ QskHashValue QskGradient::hash( QskHashValue seed ) const
|
|||
return hash;
|
||||
}
|
||||
|
||||
void QskGradient::setLinear( const QVector< qreal >& params )
|
||||
{
|
||||
Q_ASSERT( params.size() == 4 );
|
||||
|
||||
m_type = Linear;
|
||||
|
||||
m_values[0] = params[0];
|
||||
m_values[1] = params[1];
|
||||
m_values[2] = params[2];
|
||||
m_values[3] = params[3];
|
||||
}
|
||||
|
||||
QVector< qreal > QskGradient::linear() const
|
||||
{
|
||||
Q_ASSERT( m_type == Linear );
|
||||
return { m_values[0], m_values[1], m_values[2], m_values[3] };
|
||||
}
|
||||
|
||||
void QskGradient::setRadial( const QVector< qreal >& params )
|
||||
{
|
||||
Q_ASSERT( params.size() == 3 );
|
||||
|
||||
m_type = Radial;
|
||||
|
||||
m_values[0] = params[0];
|
||||
m_values[1] = params[1];
|
||||
m_values[2] = params[2];
|
||||
m_values[3] = 0.0;
|
||||
}
|
||||
|
||||
QVector< qreal > QskGradient::radial() const
|
||||
{
|
||||
Q_ASSERT( m_type == Radial );
|
||||
return { m_values[0], m_values[1], m_values[2] };
|
||||
}
|
||||
|
||||
void QskGradient::setConic( const QVector< qreal >& params )
|
||||
{
|
||||
Q_ASSERT( params.size() >= 2 && params.size() <= 4 );
|
||||
|
||||
m_type = Linear;
|
||||
|
||||
m_values[0] = params[0];
|
||||
m_values[1] = params[1];
|
||||
|
||||
if ( params.size() > 2 )
|
||||
m_values[2] = params[2];
|
||||
else
|
||||
m_values[2] = 0.0;
|
||||
|
||||
if ( params.size() == 4 )
|
||||
m_values[3] = params[3];
|
||||
else
|
||||
m_values[2] = 360.0;
|
||||
}
|
||||
|
||||
QVector< qreal > QskGradient::conic() const
|
||||
{
|
||||
Q_ASSERT( m_type == Conic );
|
||||
return { m_values[0], m_values[1], m_values[2], m_values[3] };
|
||||
}
|
||||
|
||||
#include "QskLinearGradient.h"
|
||||
#include "QskRadialGradient.h"
|
||||
#include "QskConicGradient.h"
|
||||
|
|
|
@ -26,8 +26,13 @@ class QSK_EXPORT QskGradient
|
|||
{
|
||||
Q_GADGET
|
||||
|
||||
Q_PROPERTY( Type type READ type )
|
||||
|
||||
Q_PROPERTY( QVector< qreal > linear READ linear WRITE setLinear )
|
||||
Q_PROPERTY( QVector< qreal > conic READ linear WRITE setConic )
|
||||
Q_PROPERTY( QVector< qreal > radial READ radial WRITE setRadial )
|
||||
|
||||
Q_PROPERTY( QVector< QskGradientStop > stops READ stops WRITE setStops )
|
||||
// Q_PROPERTY( QQmlListProperty<QQuickGradientStop> stops READ stops )
|
||||
|
||||
Q_PROPERTY( bool valid READ isValid )
|
||||
Q_PROPERTY( bool visible READ isVisible )
|
||||
|
@ -126,6 +131,17 @@ class QSK_EXPORT QskGradient
|
|||
|
||||
void updateStatusBits() const;
|
||||
|
||||
private:
|
||||
// for QML
|
||||
QVector< qreal > linear() const;
|
||||
void setLinear( const QVector< qreal >& );
|
||||
|
||||
QVector< qreal > radial() const;
|
||||
void setRadial( const QVector< qreal >& );
|
||||
|
||||
QVector< qreal > conic() const;
|
||||
void setConic( const QVector< qreal >& );
|
||||
|
||||
private:
|
||||
QVector< QskGradientStop > m_stops;
|
||||
|
||||
|
|
Loading…
Reference in New Issue