QgsFeatureRendererV2* QgsSingleSymbolRendererV2::create( QDomElement& element ) { QDomElement symbolsElem = element.firstChildElement( "symbols" ); if ( symbolsElem.isNull() ) return NULL; QgsSymbolV2Map symbolMap = QgsSymbolLayerV2Utils::loadSymbols( symbolsElem ); if ( !symbolMap.contains( "0" ) ) return NULL; QgsSingleSymbolRendererV2* r = new QgsSingleSymbolRendererV2( symbolMap.take( "0" ) ); // delete symbols if there are any more QgsSymbolLayerV2Utils::clearSymbolMap( symbolMap ); QDomElement rotationElem = element.firstChildElement( "rotation" ); if ( !rotationElem.isNull() ) r->setRotationField( rotationElem.attribute( "field" ) ); QDomElement sizeScaleElem = element.firstChildElement( "sizescale" ); if ( !sizeScaleElem.isNull() ) { r->setSizeScaleField( sizeScaleElem.attribute( "field" ) ); r->setScaleMethod( QgsSymbolLayerV2Utils::decodeScaleMethod( sizeScaleElem.attribute( "scalemethod" ) ) ); } // TODO: symbol levels return r; }
QgsSingleSymbolRendererV2* QgsSingleSymbolRendererV2::clone() const { QgsSingleSymbolRendererV2* r = new QgsSingleSymbolRendererV2( mSymbol->clone() ); r->setUsingSymbolLevels( usingSymbolLevels() ); r->setSizeScaleField( sizeScaleField() ); copyRendererData( r ); return r; }
QgsFeatureRendererV2* QgsSingleSymbolRendererV2::clone() { QgsSingleSymbolRendererV2* r = new QgsSingleSymbolRendererV2( mSymbol->clone() ); r->setUsingSymbolLevels( usingSymbolLevels() ); r->setRotationField( rotationField() ); r->setSizeScaleField( sizeScaleField() ); return r; }