19 #include <QFontMetricsF>
52 QList<QPair<double, double> > segmentInfo;
55 double currentLabelNumber = 0.0;
58 int segmentCounter = 0;
59 QString currentNumericLabel;
61 QList<QPair<double, double> >::const_iterator segmentIt = segmentInfo.constBegin();
62 for ( ; segmentIt != segmentInfo.constEnd(); ++segmentIt )
64 if ( segmentCounter == 0 && nSegmentsLeft > 0 )
67 currentNumericLabel = firstLabel;
69 else if ( segmentCounter != 0 && segmentCounter == nSegmentsLeft )
71 currentLabelNumber = 0;
74 if ( segmentCounter >= nSegmentsLeft )
79 if ( segmentCounter == 0 || segmentCounter >= nSegmentsLeft )
81 p->setPen( QColor( 0, 0, 0 ) );
85 if ( segmentCounter >= nSegmentsLeft )
93 if ( !segmentInfo.isEmpty() )
96 p->setPen( QColor( 0, 0, 0 ) );
116 QString largestNumberLabel = QString::number( largestLabelNumber );
120 double totalBarLength = 0.0;
122 QList< QPair<double, double> > segmentList;
125 QList< QPair<double, double> >::const_iterator segmentIt = segmentList.constBegin();
126 for ( ; segmentIt != segmentList.constEnd(); ++segmentIt )
128 totalBarLength += segmentIt->second;
134 return QRectF(
mScaleBar->transform().dx(),
mScaleBar->transform().dy(), width, height );