Skip to content

Commit 3e98d7d

Browse files
committed
Fix for line pattern sld export
1 parent be27000 commit 3e98d7d

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

src/core/symbology-ng/qgsfillsymbollayerv2.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -2636,7 +2636,10 @@ void QgsLinePatternFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &eleme
26362636
QDomElement graphicElem = doc.createElement( "se:Graphic" );
26372637
graphicFillElem.appendChild( graphicElem );
26382638

2639-
QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, "horline", QColor(), mColor, Qt::SolidLine, mLineWidth, mDistance );
2639+
//line properties must be inside the graphic definition
2640+
QColor lineColor = mFillLineSymbol ? mFillLineSymbol->color() : QColor();
2641+
double lineWidth = mFillLineSymbol ? mFillLineSymbol->width() : 0.0;
2642+
QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, "horline", QColor(), lineColor, Qt::SolidLine, lineWidth, mDistance );
26402643

26412644
// <Rotation>
26422645
QString angleFunc;
@@ -2655,11 +2658,6 @@ void QgsLinePatternFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &eleme
26552658
// <se:Displacement>
26562659
QPointF lineOffset( sin( mLineAngle ) * mOffset, cos( mLineAngle ) * mOffset );
26572660
QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, lineOffset );
2658-
2659-
if ( mFillLineSymbol )
2660-
{
2661-
mFillLineSymbol->toSld( doc, element, props );
2662-
}
26632661
}
26642662

26652663
QString QgsLinePatternFillSymbolLayer::ogrFeatureStyleWidth( double widthScaleFactor ) const

src/core/symbology-ng/qgssymbollayerv2utils.cpp

+20-1
Original file line numberDiff line numberDiff line change
@@ -2417,8 +2417,27 @@ bool QgsSymbolLayerV2Utils::createFunctionElement( QDomDocument &doc, QDomElemen
24172417
bool QgsSymbolLayerV2Utils::functionFromSldElement( QDomElement &element, QString &function )
24182418
{
24192419
QgsDebugMsg( "Entered." );
2420+
QDomElement elem;
2421+
if ( element.tagName() == "Filter" )
2422+
{
2423+
elem = element;
2424+
}
2425+
else
2426+
{
2427+
QDomNodeList filterNodes = element.elementsByTagName( "Filter" );
2428+
if ( filterNodes.size() > 0 )
2429+
{
2430+
elem = filterNodes.at( 0 ).toElement();
2431+
}
2432+
}
2433+
2434+
if ( elem.isNull() )
2435+
{
2436+
return false;
2437+
}
2438+
24202439

2421-
QgsExpression *expr = QgsOgcUtils::expressionFromOgcFilter( element );
2440+
QgsExpression *expr = QgsOgcUtils::expressionFromOgcFilter( elem );
24222441
if ( !expr )
24232442
return false;
24242443

0 commit comments

Comments
 (0)