turn around rectangular gradients as well

This commit is contained in:
Peter Hartmann 2022-01-14 11:37:41 +01:00
parent c867406aaf
commit 54a03e061d
2 changed files with 8 additions and 5 deletions

View File

@ -364,7 +364,7 @@ static void addColoredBorderRectangles1( QskLinearBox* parent, bool rounded )
auto* box = new Box( parent );
box->setBorderWidth( 20 );
QskGradient gradient1( Qt::Vertical, { { 0.0, Qt::blue },
{ 0.9, Qt::yellow },
{ 0.7, Qt::yellow },
{ 1.0, Qt::darkRed } } );
QskGradient gradient2( Qt::Vertical, { { 0.0, Qt::black },
{ 0.3, Qt::white },
@ -523,7 +523,7 @@ int main( int argc, char* argv[] )
// ### remove:
QskWindow window;
#if 0
#if 1
auto* tabView = new TabView();
window.addItem( tabView );
#else

View File

@ -464,13 +464,16 @@ static inline void qskCreateBorder(
( line++ )->setLine( x1, y1, x2, y2, c );
}
for( const QskGradientStop& stop : gradientRight.stops() )
// ### can we make this easier somehow?
for( int i = gradientRight.stops().count() - 1; i >= 0; --i )
// for( const QskGradientStop& stop : gradientRight.stops() )
{
auto stop = gradientRight.stops().at( i );
const Color c( stop.color() );
const qreal x1 = in.right;
const qreal x2 = out.right;
const qreal y1 = in.bottom + stop.position() * ( in.top - in.bottom );
const qreal y2 = out.bottom + stop.position() * ( out.top - out.bottom );
const qreal y1 = in.bottom + (1-stop.position()) * ( in.top - in.bottom );
const qreal y2 = out.bottom + (1-stop.position()) * ( out.top - out.bottom );
( line++ )->setLine( x1, y1, x2, y2, c );
}