Skip to content

Commit fe9c5c4

Browse files
committed
Fix #11330 (Composer legend can be smaller than its content)
1 parent 3546b32 commit fe9c5c4

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/core/composer/qgscomposerlegend.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,14 @@ void QgsComposerLegend::paint( QPainter* painter, const QStyleOptionGraphicsItem
100100

101101
QgsLegendRenderer legendRenderer( mLegendModel2, mSettings );
102102
legendRenderer.setLegendSize( rect().size() );
103+
104+
//adjust box if width or height is too small
105+
QSizeF size = legendRenderer.minimumSize();
106+
if ( size.height() > rect().height() )
107+
setSceneRect( QRectF( pos().x(), pos().y(), rect().width(), size.height() ) );
108+
if ( size.width() > rect().width() )
109+
setSceneRect( QRectF( pos().x(), pos().y(), size.width(), rect().height() ) );
110+
103111
legendRenderer.drawLegend( painter );
104112

105113
painter->restore();
@@ -116,7 +124,7 @@ QSizeF QgsComposerLegend::paintAndDetermineSize( QPainter* painter )
116124
{
117125
QgsLegendRenderer legendRenderer( mLegendModel2, mSettings );
118126
QSizeF size = legendRenderer.minimumSize();
119-
if ( !painter )
127+
if ( painter )
120128
legendRenderer.drawLegend( painter );
121129
return size;
122130
}

0 commit comments

Comments
 (0)