void QgsHighlight::paintPolygon( QPainter *p, QgsPolygon polygon ) { QPolygonF poly; // just ring outlines, no fill p->setPen( mPen ); p->setBrush( Qt::NoBrush ); for ( int i = 0; i < polygon.size(); i++ ) { QPolygonF ring( polygon[i].size() + 1 ); for ( int j = 0; j < polygon[i].size(); j++ ) { ring[ j ] = toCanvasCoordinates( polygon[i][j] ) - pos(); } ring[ polygon[i].size()] = ring[ 0 ]; p->drawPolygon( ring ); if ( i == 0 ) poly = ring; else poly = poly.subtracted( ring ); } // just fill, no outline p->setPen( Qt::NoPen ); p->setBrush( mBrush ); p->drawPolygon( poly ); }