@@ -390,6 +390,9 @@ void QgsScaleBarPlugin::renderScaleBar(QPainter * theQPainter)
390390 }
391391 else if (mStyle ==tr (" Box" ))
392392 {
393+ // Want square corners for a box
394+ myBackgroundPen.setJoinStyle ( Qt::MiterJoin );
395+ myForegroundPen.setJoinStyle ( Qt::MiterJoin );
393396 QPolygon myBoxArray (5 );
394397 // draw a buffer first so bar shows up on dark images
395398 theQPainter->setPen ( myBackgroundPen );
@@ -403,14 +406,26 @@ void QgsScaleBarPlugin::renderScaleBar(QPainter * theQPainter)
403406 theQPainter->drawPolyline (myBoxArray);
404407 // now draw the bar itself in user selected color
405408 theQPainter->setPen ( myForegroundPen );
409+ theQPainter->setBrush ( QBrush ( mColour , Qt::SolidPattern) );
410+ int midPointX = myScaleBarWidthInt/2 + myOriginX;
406411 myBoxArray.putPoints (0 ,5 ,
407412 myOriginX , myOriginY,
408- (myScaleBarWidthInt + myOriginX) , myOriginY,
409- (myScaleBarWidthInt + myOriginX) , (myOriginY+myMajorTickSize),
413+ midPointX , myOriginY,
414+ midPointX , (myOriginY+myMajorTickSize),
410415 myOriginX , (myOriginY+myMajorTickSize),
411416 myOriginX , myOriginY
412417 );
413- theQPainter->drawPolyline (myBoxArray);
418+ theQPainter->drawPolygon (myBoxArray);
419+
420+ theQPainter->setBrush ( Qt::NoBrush );
421+ myBoxArray.putPoints (0 ,5 ,
422+ midPointX , myOriginY,
423+ (myScaleBarWidthInt + myOriginX), myOriginY,
424+ (myScaleBarWidthInt + myOriginX), (myOriginY+myMajorTickSize),
425+ midPointX , (myOriginY+myMajorTickSize),
426+ midPointX , myOriginY
427+ );
428+ theQPainter->drawPolygon (myBoxArray);
414429 }
415430
416431 // Do actual drawing of scale bar
0 commit comments