@@ -48,7 +48,13 @@ void QgsComposerLabel::paint( QPainter* painter, const QStyleOptionGraphicsItem*
48
48
painter->setFont ( mFont );
49
49
50
50
QFontMetricsF fontSize ( mFont );
51
- painter->drawText ( QPointF ( mMargin , mMargin + fontSize.ascent () ), mText );
51
+
52
+ // support multiline labels
53
+ double penWidth = pen ().widthF ();
54
+ QRectF painterRect (penWidth, penWidth, rect ().width () - 2 * penWidth, \
55
+ rect ().height () - 2 * penWidth);
56
+ painter->drawText (painterRect, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, mText );
57
+
52
58
53
59
drawFrame ( painter );
54
60
if ( isSelected () )
@@ -60,7 +66,6 @@ void QgsComposerLabel::paint( QPainter* painter, const QStyleOptionGraphicsItem*
60
66
void QgsComposerLabel::setText ( const QString& text )
61
67
{
62
68
mText = text;
63
- adjustSizeToText ();
64
69
}
65
70
66
71
void QgsComposerLabel::setFont ( const QFont& f )
@@ -76,13 +81,12 @@ void QgsComposerLabel::setFont( const QFont& f )
76
81
{
77
82
mFont = f;
78
83
}
79
- adjustSizeToText ();
80
84
}
81
85
82
86
void QgsComposerLabel::adjustSizeToText ()
83
87
{
84
88
QFontMetricsF fontInfo ( mFont );
85
- setSceneRect ( QRectF ( transform ().dx (), transform ().dy (), fontInfo.width ( mText ) + 2 * mMargin , fontInfo.ascent () + 2 * mMargin ) );
89
+ setSceneRect ( QRectF ( transform ().dx (), transform ().dy (), fontInfo.width ( mText ) + 2 * mMargin + 2 * pen (). widthF () , fontInfo.ascent () + 2 * mMargin + 2 * pen (). widthF () ) );
86
90
}
87
91
88
92
QFont QgsComposerLabel::font () const
0 commit comments