@@ -58,15 +58,15 @@ QgsDataDefined* scaleWholeSymbol( double scaleFactor, const QgsDataDefined& dd )
5858}
5959
6060inline
61- QgsDataDefined* scaleWholeSymbol ( double scaleFactorX, double scaleFactorY, const QgsDataDefined& dd )
61+ QgsDataDefined* scaleWholeSymbol ( double scaleFactorX, double scaleFactorY, const QgsDataDefined& dd )
6262{
6363 QgsDataDefined* scaledDD = new QgsDataDefined ( dd );
6464 scaledDD->setUseExpression ( true );
6565 QString exprString = dd.useExpression () ? dd.expressionString () : dd.field ();
6666 scaledDD->setExpressionString (
67- ( scaleFactorX ? " tostring(" + QString::number ( scaleFactorX ) + " *(" + exprString + " ))" : " '0'" ) +
68- " || ',' || " +
69- ( scaleFactorY ? " tostring(" + QString::number ( scaleFactorY ) + " *(" + exprString + " ))" : " '0'" ));
67+ ( scaleFactorX ? " tostring(" + QString::number ( scaleFactorX ) + " *(" + exprString + " ))" : " '0'" ) +
68+ " || ',' || " +
69+ ( scaleFactorY ? " tostring(" + QString::number ( scaleFactorY ) + " *(" + exprString + " ))" : " '0'" ) );
7070 return scaledDD;
7171}
7272
@@ -631,13 +631,13 @@ QgsDataDefined QgsMarkerSymbolV2::dataDefinedAngle() const
631631
632632 if ( qgsDoubleNear ( layer->angle (), symbolRotation ) )
633633 {
634- if ( *layerAngleDD != *symbolDD )
634+ if ( !layerAngleDD || *layerAngleDD != *symbolDD )
635635 return QgsDataDefined ();
636636 }
637637 else
638638 {
639639 QScopedPointer< QgsDataDefined > rotatedDD ( rotateWholeSymbol ( layer->angle () - symbolRotation, *symbolDD ) );
640- if ( *layerAngleDD != *( rotatedDD.data () ) )
640+ if ( !layerAngleDD || *layerAngleDD != *( rotatedDD.data () ) )
641641 return QgsDataDefined ();
642642 }
643643 }
@@ -707,8 +707,8 @@ void QgsMarkerSymbolV2::setDataDefinedSize( const QgsDataDefined &dd )
707707 if ( layer->offset ().x () || layer->offset ().y () )
708708 {
709709 layer->setDataDefinedProperty ( " offset" , scaleWholeSymbol (
710- layer->offset ().x () / symbolSize,
711- layer->offset ().y () / symbolSize, dd ) );
710+ layer->offset ().x () / symbolSize,
711+ layer->offset ().y () / symbolSize, dd ) );
712712 }
713713 }
714714 }
@@ -757,10 +757,9 @@ QgsDataDefined QgsMarkerSymbolV2::dataDefinedSize() const
757757 return QgsDataDefined ();
758758 }
759759
760-
761760 QScopedPointer< QgsDataDefined > scaledOffsetDD ( scaleWholeSymbol ( layer->offset ().x () / symbolSize, layer->offset ().y () / symbolSize, *symbolDD ) );
762761 if ( layerOffsetDD && *layerOffsetDD != *( scaledOffsetDD.data () ) )
763- return QgsDataDefined ();
762+ return QgsDataDefined ();
764763 }
765764
766765 return QgsDataDefined ( *symbolDD );
@@ -961,7 +960,7 @@ QgsDataDefined QgsLineSymbolV2::dataDefinedWidth() const
961960
962961 QScopedPointer< QgsDataDefined > scaledOffsetDD ( scaleWholeSymbol ( layer->offset () / symbolWidth, *symbolDD ) );
963962 if ( layerOffsetDD && *layerOffsetDD != *( scaledOffsetDD.data () ) )
964- return QgsDataDefined ();
963+ return QgsDataDefined ();
965964 }
966965
967966 return QgsDataDefined ( *symbolDD );
0 commit comments