Skip to content

Commit c5769bf

Browse files
committed
Append Filter tag to Rule tag when exporting Categorized/Graduated rendererV2 to SLD doc (fix #5191)
1 parent 949b2f0 commit c5769bf

File tree

2 files changed

+16
-20
lines changed

2 files changed

+16
-20
lines changed

src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,28 +73,27 @@ void QgsRendererCategoryV2::toSld( QDomDocument &doc, QDomElement &element, QgsS
7373
if ( !mSymbol || props.value( "attribute", "" ).isEmpty() )
7474
return;
7575

76+
QString attrName = props[ "attribute" ];
77+
7678
QDomElement ruleElem = doc.createElement( "se:Rule" );
7779
element.appendChild( ruleElem );
7880

79-
QString valueStr = QString( "value: %1" ).arg( mValue.toString() );
80-
8181
QDomElement nameElem = doc.createElement( "se:Name" );
82-
nameElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : valueStr ) );
82+
nameElem.appendChild( doc.createTextNode( mLabel ) );
8383
ruleElem.appendChild( nameElem );
8484

85-
QString descrName = props.value( "version", "1.1" ) < "1.1" ? "Abstract" : "se:Description";
86-
QString descrValue = QString( "Categorized symbol rendererV2 - %1" ).arg( valueStr );
87-
88-
QDomElement descrElem = doc.createElement( descrName );
89-
descrElem.appendChild( doc.createTextNode( descrValue ) );
85+
QDomElement descrElem = doc.createElement( "se:Description" );
86+
QString descrStr = QString( "%1 is '%2'" ).arg( attrName ).arg( mValue.toString() );
87+
descrElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : descrStr ) );
9088
ruleElem.appendChild( descrElem );
9189

9290
// create the ogc:Filter for the range
9391
QDomElement filterElem = doc.createElement( "ogc:Filter" );
94-
9592
QString filterFunc = QString( "%1 = '%2'" )
96-
.arg( props[ "attribute" ] ).arg( mValue.toString().replace( "'", "''" ) );
93+
.arg( attrName.replace( "\"", "\"\"" ) )
94+
.arg( mValue.toString().replace( "'", "''" ) );
9795
QgsSymbolLayerV2Utils::createFunctionElement( doc, filterElem, filterFunc );
96+
ruleElem.appendChild( filterElem );
9897

9998
mSymbol->toSld( doc, ruleElem, props );
10099
}

src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,27 +103,24 @@ void QgsRendererRangeV2::toSld( QDomDocument &doc, QDomElement &element, QgsStri
103103
if ( !mSymbol || props.value( "attribute", "" ).isEmpty() )
104104
return;
105105

106+
QString attrName = props[ "attribute" ];
107+
106108
QDomElement ruleElem = doc.createElement( "se:Rule" );
107109
element.appendChild( ruleElem );
108110

109-
QString valueStr = QString( "range: %1 - %2" ).arg( mLowerValue ).arg( mUpperValue );
110-
111111
QDomElement nameElem = doc.createElement( "se:Name" );
112-
nameElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : valueStr ) );
112+
nameElem.appendChild( doc.createTextNode( mLabel ) );
113113
ruleElem.appendChild( nameElem );
114114

115-
QString descrName = props.value( "version", "1.1" ) < "1.1" ? "Abstract" : "se:Description";
116-
QString descrValue = QString( "Graduated symbol rendererV2 - %1" ).arg( valueStr );
117-
118-
QDomElement descrElem = doc.createElement( descrName );
119-
descrElem.appendChild( doc.createTextNode( descrValue ) );
115+
QDomElement descrElem = doc.createElement( "se:Description" );
116+
QString descrStr = QString( "range: %1 - %2" ).arg( mLowerValue ).arg( mUpperValue );
117+
descrElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : descrStr ) );
120118
ruleElem.appendChild( descrElem );
121119

122120
// create the ogc:Filter for the range
123121
QDomElement filterElem = doc.createElement( "ogc:Filter" );
124-
125122
QString filterFunc = QString( "%1 > %2 AND %1 <= %3" )
126-
.arg( props[ "attribute" ] )
123+
.arg( attrName.replace( "\"", "\"\"" ) )
127124
.arg( mLowerValue ).arg( mUpperValue );
128125
QgsSymbolLayerV2Utils::createFunctionElement( doc, filterElem, filterFunc );
129126

0 commit comments

Comments
 (0)