QList<QString> QgsCategorizedSymbolRendererV2::usedAttributes() { QSet<QString> attributes; // mAttrName can contain either attribute name or an expression. // Sometimes it is not possible to distinguish between those two, // e.g. "a - b" can be both a valid attribute name or expression. // Since we do not have access to fields here, try both options. attributes << mAttrName; QgsExpression testExpr( mAttrName ); if ( !testExpr.hasParserError() ) attributes.unite( testExpr.referencedColumns().toSet() ); if ( mRotation.data() ) attributes.unite( mRotation->referencedColumns().toSet() ); if ( mSizeScale.data() ) attributes.unite( mSizeScale->referencedColumns().toSet() ); QgsCategoryList::const_iterator catIt = mCategories.constBegin(); for ( ; catIt != mCategories.constEnd(); ++catIt ) { QgsSymbolV2* catSymbol = catIt->symbol(); if ( catSymbol ) { attributes.unite( catSymbol->usedAttributes() ); } } return attributes.toList(); }
void QgsCategorizedSymbolRendererV2::toSld( QDomDocument &doc, QDomElement &element ) const { QgsStringMap props; props[ "attribute" ] = mAttrName; if ( mRotation.data() ) props[ "angle" ] = mRotation->expression(); if ( mSizeScale.data() ) props[ "scale" ] = mSizeScale->expression(); // create a Rule for each range for ( QgsCategoryList::const_iterator it = mCategories.constBegin(); it != mCategories.constEnd(); ++it ) { QgsStringMap catProps( props ); it->toSld( doc, element, catProps ); } }
void QgsCategorizedSymbolRendererV2::toSld( QDomDocument &doc, QDomElement &element ) const { QgsStringMap props; props[ "attribute" ] = mAttrName; if ( !mRotationField.isEmpty() ) props[ "angle" ] = QString( mRotationField ).append( "\"" ).prepend( "\"" ); if ( !mSizeScaleField.isEmpty() ) props[ "scale" ] = QString( mSizeScaleField ).append( "\"" ).prepend( "\"" ); // create a Rule for each range for ( QgsCategoryList::const_iterator it = mCategories.constBegin(); it != mCategories.constEnd(); it++ ) { QgsStringMap catProps( props ); it->toSld( doc, element, catProps ); } }
QgsLegendSymbolList QgsCategorizedSymbolRendererV2::legendSymbolItems() { QSettings settings; bool showClassifiers = settings.value( "/qgis/showLegendClassifiers", false ).toBool(); QgsLegendSymbolList lst; if ( showClassifiers ) { lst << qMakePair( classAttribute(), ( QgsSymbolV2* )0 ); } QgsCategoryList::const_iterator catIt = mCategories.constBegin(); for ( ; catIt != mCategories.constEnd(); ++catIt ) { lst << qMakePair( catIt->label(), catIt->symbol() ); } return lst; }
QList<QString> QgsCategorizedSymbolRendererV2::usedAttributes() { QgsExpression exp( mAttrName ); QSet<QString> attributes( exp.referencedColumns().toSet() ); if ( mRotation.data() ) attributes.unite( mRotation->referencedColumns().toSet() ); if ( mSizeScale.data() ) attributes.unite( mSizeScale->referencedColumns().toSet() ); QgsCategoryList::const_iterator catIt = mCategories.constBegin(); for ( ; catIt != mCategories.constEnd(); ++catIt ) { QgsSymbolV2* catSymbol = catIt->symbol(); if ( catSymbol ) { attributes.unite( catSymbol->usedAttributes() ); } } return attributes.toList(); }
QList<QString> QgsCategorizedSymbolRendererV2::usedAttributes() { QSet<QString> attributes; attributes.insert( mAttrName ); if ( !mRotationField.isEmpty() ) { attributes.insert( mRotationField ); } if ( !mSizeScaleField.isEmpty() ) { attributes.insert( mSizeScaleField ); } QgsCategoryList::const_iterator catIt = mCategories.constBegin(); for ( ; catIt != mCategories.constEnd(); ++catIt ) { QgsSymbolV2* catSymbol = catIt->symbol(); if ( catSymbol ) { attributes.unite( catSymbol->usedAttributes() ); } } return attributes.toList(); }