@@ -190,7 +190,7 @@ void QgsSimpleLineSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
190190 QColor penColor = mColor ;
191191 penColor.setAlphaF ( mColor .alphaF () * context.alpha () );
192192 mPen .setColor ( penColor );
193- double scaledWidth = mWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mWidthUnit , mWidthMapUnitScale );
193+ double scaledWidth = QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), mWidth , mWidthUnit , mWidthMapUnitScale );
194194 mPen .setWidthF ( scaledWidth );
195195 if ( mUseCustomDashPattern && scaledWidth != 0 )
196196 {
@@ -211,7 +211,7 @@ void QgsSimpleLineSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
211211 for ( ; it != mCustomDashVector .constEnd (); ++it )
212212 {
213213 // the dash is specified in terms of pen widths, therefore the division
214- scaledVector << ( *it ) * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mCustomDashPatternUnit , mCustomDashPatternMapUnitScale ) / dashWidthDiv;
214+ scaledVector << QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), ( *it ), mCustomDashPatternUnit , mCustomDashPatternMapUnitScale ) / dashWidthDiv;
215215 }
216216 mPen .setDashPattern ( scaledVector );
217217 }
@@ -321,7 +321,7 @@ void QgsSimpleLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
321321 }
322322 else
323323 {
324- double scaledOffset = offset * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mOffsetUnit , mOffsetMapUnitScale );
324+ double scaledOffset = QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), offset , mOffsetUnit , mOffsetMapUnitScale );
325325 QList<QPolygonF> mline = ::offsetLine ( points, scaledOffset, context.feature () ? context.feature ()->constGeometry ()->type () : QGis::Line );
326326 for ( int part = 0 ; part < mline.count (); ++part )
327327 p->drawPolyline ( mline[ part ] );
@@ -457,7 +457,7 @@ QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::createFromSld( QDomElement &elemen
457457
458458void QgsSimpleLineSymbolLayerV2::applySizeScale ( QgsSymbolV2RenderContext& context, QPen& pen, QPen& selPen )
459459{
460- double scaledWidth = mWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mWidthUnit , mWidthMapUnitScale );
460+ double scaledWidth = QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), mWidth , mWidthUnit , mWidthMapUnitScale );
461461 pen.setWidthF ( scaledWidth );
462462 selPen.setWidthF ( scaledWidth );
463463}
@@ -471,8 +471,9 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
471471 bool hasStrokeWidthExpression = false ;
472472 if ( hasDataDefinedProperty ( QgsSymbolLayerV2::EXPR_WIDTH ) )
473473 {
474- double scaledWidth = evaluateDataDefinedProperty ( QgsSymbolLayerV2::EXPR_WIDTH , context, mWidth ).toDouble ()
475- * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mWidthUnit , mWidthMapUnitScale );
474+ double scaledWidth = QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (),
475+ evaluateDataDefinedProperty ( QgsSymbolLayerV2::EXPR_WIDTH , context, mWidth ).toDouble (),
476+ mWidthUnit , mWidthMapUnitScale );
476477 pen.setWidthF ( scaledWidth );
477478 selPen.setWidthF ( scaledWidth );
478479 hasStrokeWidthExpression = true ;
@@ -496,7 +497,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
496497 // dash dot vector
497498 if ( hasDataDefinedProperty ( QgsSymbolLayerV2::EXPR_CUSTOMDASH ) )
498499 {
499- double scaledWidth = mWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mWidthUnit , mWidthMapUnitScale );
500+ double scaledWidth = QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), mWidth , mWidthUnit , mWidthMapUnitScale );
500501 double dashWidthDiv = mPen .widthF ();
501502
502503 if ( hasStrokeWidthExpression )
@@ -521,7 +522,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
521522 QStringList::const_iterator dashIt = dashList.constBegin ();
522523 for ( ; dashIt != dashList.constEnd (); ++dashIt )
523524 {
524- dashVector.push_back ( dashIt-> toDouble () * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mCustomDashPatternUnit , mCustomDashPatternMapUnitScale ) / dashWidthDiv );
525+ dashVector.push_back ( QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), dashIt-> toDouble (), mCustomDashPatternUnit , mCustomDashPatternMapUnitScale ) / dashWidthDiv );
525526 }
526527 pen.setDashPattern ( dashVector );
527528 }
@@ -586,7 +587,7 @@ double QgsSimpleLineSymbolLayerV2::dxfWidth( const QgsDxfExport& e, const QgsSym
586587 }
587588 else if ( context.renderHints () & QgsSymbolV2::DataDefinedSizeScale )
588589 {
589- width = mWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mWidthUnit , mWidthMapUnitScale );
590+ width = QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), mWidth , mWidthUnit , mWidthMapUnitScale );
590591 }
591592
592593 return width * e.mapUnitScaleFactor ( e.symbologyScaleDenominator (), widthUnit (), e.mapUnits () );
@@ -854,7 +855,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
854855 else
855856 {
856857 context.renderContext ().setGeometry ( 0 ); // always use segmented geometry with offset
857- QList<QPolygonF> mline = ::offsetLine ( points, offset * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( context.renderContext (), mOffsetUnit , mOffsetMapUnitScale ), context.feature () ? context.feature ()->constGeometry ()->type () : QGis::Line );
858+ QList<QPolygonF> mline = ::offsetLine ( points, QgsSymbolLayerV2Utils::convertToPainterUnits ( context.renderContext (), offset , mOffsetUnit , mOffsetMapUnitScale ), context.feature () ? context.feature ()->constGeometry ()->type () : QGis::Line );
858859
859860 for ( int part = 0 ; part < mline.count (); ++part )
860861 {
@@ -920,8 +921,8 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
920921 offsetAlongLine = evaluateDataDefinedProperty ( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE , context, mOffsetAlongLine ).toDouble ();
921922 }
922923
923- double painterUnitInterval = interval * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( rc, mIntervalUnit , mIntervalMapUnitScale );
924- lengthLeft = painterUnitInterval - offsetAlongLine * QgsSymbolLayerV2Utils::lineWidthScaleFactor ( rc, mIntervalUnit , mIntervalMapUnitScale );
924+ double painterUnitInterval = QgsSymbolLayerV2Utils::convertToPainterUnits ( rc, interval , mIntervalUnit , mIntervalMapUnitScale );
925+ lengthLeft = painterUnitInterval - QgsSymbolLayerV2Utils::convertToPainterUnits ( rc, offsetAlongLine , mIntervalUnit , mIntervalMapUnitScale );
925926
926927 for ( int i = 1 ; i < points.count (); ++i )
927928 {
@@ -996,7 +997,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineVertex( const QPolygonF& points,
996997 if ( offsetAlongLine != 0 )
997998 {
998999 // scale offset along line
999- offsetAlongLine * = QgsSymbolLayerV2Utils::lineWidthScaleFactor ( rc, mOffsetAlongLineUnit , mOffsetAlongLineMapUnitScale );
1000+ offsetAlongLine = QgsSymbolLayerV2Utils::convertToPainterUnits ( rc, offsetAlongLine , mOffsetAlongLineUnit , mOffsetAlongLineMapUnitScale );
10001001 }
10011002
10021003 if ( offsetAlongLine == 0 && context.renderContext ().geometry ()
0 commit comments