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
|
background
|
||||||
{
|
{
|
||||||
|
linear: [ 0.0, 0.0, 1.0, 0.0 ]
|
||||||
|
|
||||||
stops: [
|
stops: [
|
||||||
{ position: 0.0, color: "Red" },
|
{ position: 0.0, color: "Red" },
|
||||||
{ position: 1.0, color: "Yellow" },
|
{ position: 1.0, color: "Yellow" },
|
||||||
|
|
|
@ -386,6 +386,68 @@ QskHashValue QskGradient::hash( QskHashValue seed ) const
|
||||||
return hash;
|
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 "QskLinearGradient.h"
|
||||||
#include "QskRadialGradient.h"
|
#include "QskRadialGradient.h"
|
||||||
#include "QskConicGradient.h"
|
#include "QskConicGradient.h"
|
||||||
|
|
|
@ -26,8 +26,13 @@ class QSK_EXPORT QskGradient
|
||||||
{
|
{
|
||||||
Q_GADGET
|
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( QVector< QskGradientStop > stops READ stops WRITE setStops )
|
||||||
// Q_PROPERTY( QQmlListProperty<QQuickGradientStop> stops READ stops )
|
|
||||||
|
|
||||||
Q_PROPERTY( bool valid READ isValid )
|
Q_PROPERTY( bool valid READ isValid )
|
||||||
Q_PROPERTY( bool visible READ isVisible )
|
Q_PROPERTY( bool visible READ isVisible )
|
||||||
|
@ -126,6 +131,17 @@ class QSK_EXPORT QskGradient
|
||||||
|
|
||||||
void updateStatusBits() const;
|
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:
|
private:
|
||||||
QVector< QskGradientStop > m_stops;
|
QVector< QskGradientStop > m_stops;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue