@@ -390,6 +390,9 @@ void QgsScaleBarPlugin::renderScaleBar(QPainter * theQPainter)
390
390
}
391
391
else if (mStyle ==tr (" Box" ))
392
392
{
393
+ // Want square corners for a box
394
+ myBackgroundPen.setJoinStyle ( Qt::MiterJoin );
395
+ myForegroundPen.setJoinStyle ( Qt::MiterJoin );
393
396
QPolygon myBoxArray (5 );
394
397
// draw a buffer first so bar shows up on dark images
395
398
theQPainter->setPen ( myBackgroundPen );
@@ -403,14 +406,26 @@ void QgsScaleBarPlugin::renderScaleBar(QPainter * theQPainter)
403
406
theQPainter->drawPolyline (myBoxArray);
404
407
// now draw the bar itself in user selected color
405
408
theQPainter->setPen ( myForegroundPen );
409
+ theQPainter->setBrush ( QBrush ( mColour , Qt::SolidPattern) );
410
+ int midPointX = myScaleBarWidthInt/2 + myOriginX;
406
411
myBoxArray.putPoints (0 ,5 ,
407
412
myOriginX , myOriginY,
408
- (myScaleBarWidthInt + myOriginX) , myOriginY,
409
- (myScaleBarWidthInt + myOriginX) , (myOriginY+myMajorTickSize),
413
+ midPointX , myOriginY,
414
+ midPointX , (myOriginY+myMajorTickSize),
410
415
myOriginX , (myOriginY+myMajorTickSize),
411
416
myOriginX , myOriginY
412
417
);
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);
414
429
}
415
430
416
431
// Do actual drawing of scale bar
0 commit comments