The following commit has been merged in the master branch: commit c5769bf3799c785ab90d4f37fa1a0c7fe88cfc3f Author: Giuseppe Sucameli <brush.ty...@gmail.com> Date: Fri Mar 16 16:50:59 2012 +0100
Append Filter tag to Rule tag when exporting Categorized/Graduated rendererV2 to SLD doc (fix #5191) diff --git a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp index ea9d014..c55bd76 100644 --- a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp +++ b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp @@ -73,28 +73,27 @@ void QgsRendererCategoryV2::toSld( QDomDocument &doc, QDomElement &element, QgsS if ( !mSymbol || props.value( "attribute", "" ).isEmpty() ) return; + QString attrName = props[ "attribute" ]; + QDomElement ruleElem = doc.createElement( "se:Rule" ); element.appendChild( ruleElem ); - QString valueStr = QString( "value: %1" ).arg( mValue.toString() ); - QDomElement nameElem = doc.createElement( "se:Name" ); - nameElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : valueStr ) ); + nameElem.appendChild( doc.createTextNode( mLabel ) ); ruleElem.appendChild( nameElem ); - QString descrName = props.value( "version", "1.1" ) < "1.1" ? "Abstract" : "se:Description"; - QString descrValue = QString( "Categorized symbol rendererV2 - %1" ).arg( valueStr ); - - QDomElement descrElem = doc.createElement( descrName ); - descrElem.appendChild( doc.createTextNode( descrValue ) ); + QDomElement descrElem = doc.createElement( "se:Description" ); + QString descrStr = QString( "%1 is '%2'" ).arg( attrName ).arg( mValue.toString() ); + descrElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : descrStr ) ); ruleElem.appendChild( descrElem ); // create the ogc:Filter for the range QDomElement filterElem = doc.createElement( "ogc:Filter" ); - QString filterFunc = QString( "%1 = '%2'" ) - .arg( props[ "attribute" ] ).arg( mValue.toString().replace( "'", "''" ) ); + .arg( attrName.replace( "\"", "\"\"" ) ) + .arg( mValue.toString().replace( "'", "''" ) ); QgsSymbolLayerV2Utils::createFunctionElement( doc, filterElem, filterFunc ); + ruleElem.appendChild( filterElem ); mSymbol->toSld( doc, ruleElem, props ); } diff --git a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp index 190c95b..a9b128f 100644 --- a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp +++ b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp @@ -103,27 +103,24 @@ void QgsRendererRangeV2::toSld( QDomDocument &doc, QDomElement &element, QgsStri if ( !mSymbol || props.value( "attribute", "" ).isEmpty() ) return; + QString attrName = props[ "attribute" ]; + QDomElement ruleElem = doc.createElement( "se:Rule" ); element.appendChild( ruleElem ); - QString valueStr = QString( "range: %1 - %2" ).arg( mLowerValue ).arg( mUpperValue ); - QDomElement nameElem = doc.createElement( "se:Name" ); - nameElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : valueStr ) ); + nameElem.appendChild( doc.createTextNode( mLabel ) ); ruleElem.appendChild( nameElem ); - QString descrName = props.value( "version", "1.1" ) < "1.1" ? "Abstract" : "se:Description"; - QString descrValue = QString( "Graduated symbol rendererV2 - %1" ).arg( valueStr ); - - QDomElement descrElem = doc.createElement( descrName ); - descrElem.appendChild( doc.createTextNode( descrValue ) ); + QDomElement descrElem = doc.createElement( "se:Description" ); + QString descrStr = QString( "range: %1 - %2" ).arg( mLowerValue ).arg( mUpperValue ); + descrElem.appendChild( doc.createTextNode( !mLabel.isEmpty() ? mLabel : descrStr ) ); ruleElem.appendChild( descrElem ); // create the ogc:Filter for the range QDomElement filterElem = doc.createElement( "ogc:Filter" ); - QString filterFunc = QString( "%1 > %2 AND %1 <= %3" ) - .arg( props[ "attribute" ] ) + .arg( attrName.replace( "\"", "\"\"" ) ) .arg( mLowerValue ).arg( mUpperValue ); QgsSymbolLayerV2Utils::createFunctionElement( doc, filterElem, filterFunc ); -- The Quantum GIS in Debian project _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel