First pass at buffers - not quite right yet, but I lost the last one I made so now I have to refigure it out....

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@1971 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
timlinux 2004-09-07 01:05:36 +00:00
parent 1a23d87125
commit 32459b98f5

View File

@ -143,12 +143,6 @@ void QgsLabel::renderLabel( QPainter * painter, QgsRect *viewExtent,
font.setUnderline ( (bool) value.toInt() );
}
value = fieldValue ( Color, feature );
if ( value.isEmpty() ) {
pen.setColor ( mLayerAttributes->color() );
} else {
pen.setColor ( QColor(value) );
}
/* Coordinates */
double x, y, xoffset, yoffset, ang;
@ -240,9 +234,25 @@ void QgsLabel::renderLabel( QPainter * painter, QgsRect *viewExtent,
painter->save();
painter->setFont ( font );
painter->setPen ( pen );
painter->translate ( x, y );
painter->rotate ( -ang );
//draw the buffer if needed
if (mLayerAttributes->bufferSizeIsSet())
{
pen.setColor ( mLayerAttributes->bufferColor() );
painter->setPen ( pen );
for (int x = 0 - mLayerAttributes->bufferSize(); x < mLayerAttributes->bufferSize(); x++)
for (int y = 0 - mLayerAttributes->bufferSize(); y < mLayerAttributes->bufferSize(); y++)
painter->drawText ( dx+x, dy+y, text );
}
//revert to main font colour
value = fieldValue ( Color, feature );
if ( value.isEmpty() ) {
pen.setColor ( mLayerAttributes->color() );
} else {
pen.setColor ( QColor(value) );
}
painter->setPen ( pen );
painter->drawText ( dx, dy, text );
painter->restore();
}