Skip to content

Commit e5bb0b9

Browse files
committedJan 14, 2016
Fill symbol layer: consider already existing transformations on brushes and restore transformation after rendering
1 parent 886fd72 commit e5bb0b9

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed
 

‎src/core/symbology-ng/qgsfillsymbollayerv2.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1572,15 +1572,16 @@ void QgsImageFillSymbolLayer::renderPolygon( const QPolygonF& points, QList<QPol
15721572

15731573
p->setPen( QPen( Qt::NoPen ) );
15741574

1575+
QTransform bkTransform = mBrush.transform();
15751576
if ( context.renderContext().testFlag( QgsRenderContext::RenderMapTile ) )
15761577
{
15771578
//transform brush to upper left corner of geometry bbox
15781579
QPointF leftCorner = points.boundingRect().topLeft();
1579-
QTransform leftCornerTransform = QTransform::fromTranslate( leftCorner.x(), leftCorner.y() );
1580-
mBrush.setTransform( leftCornerTransform );
1580+
QTransform t = mBrush.transform();
1581+
t.translate( leftCorner.x(), leftCorner.y() );
1582+
mBrush.setTransform( t );
15811583
}
15821584

1583-
15841585
if ( context.selected() )
15851586
{
15861587
QColor selColor = context.renderContext().selectionColor();
@@ -1591,18 +1592,13 @@ void QgsImageFillSymbolLayer::renderPolygon( const QPolygonF& points, QList<QPol
15911592
_renderPolygon( p, points, rings, context );
15921593
}
15931594

1594-
if ( qgsDoubleNear( mNextAngle, 0.0 ) )
1595-
{
1596-
p->setBrush( mBrush );
1597-
}
1598-
else
1595+
if ( !qgsDoubleNear( mNextAngle, 0.0 ) )
15991596
{
16001597
QTransform t = mBrush.transform();
16011598
t.rotate( mNextAngle );
1602-
QBrush rotatedBrush = mBrush;
1603-
rotatedBrush.setTransform( t );
1604-
p->setBrush( rotatedBrush );
1599+
mBrush.setTransform( t );
16051600
}
1601+
p->setBrush( mBrush );
16061602
_renderPolygon( p, points, rings, context );
16071603
if ( mOutline )
16081604
{
@@ -1616,6 +1612,8 @@ void QgsImageFillSymbolLayer::renderPolygon( const QPolygonF& points, QList<QPol
16161612
}
16171613
}
16181614
}
1615+
1616+
mBrush.setTransform( bkTransform );
16191617
}
16201618

16211619
bool QgsImageFillSymbolLayer::setSubSymbol( QgsSymbolV2* symbol )

0 commit comments

Comments
 (0)
Please sign in to comment.