@@ -717,16 +717,16 @@ static QString _nameForSymbolType( QgsSymbolV2::SymbolType type )
717717 }
718718}
719719
720- QDomElement QgsSymbolLayerV2Utils::saveSymbol ( QString name, QgsSymbolV2* symbol, QDomDocument& doc, QgsSymbolV2Map* subSymbols )
720+ QDomElement QgsSymbolLayerV2Utils::saveSymbol ( QString name, QgsSymbolV2* symbol, QDomDocument& doc )
721721{
722722 Q_ASSERT ( symbol );
723-
724723 QDomElement symEl = doc.createElement ( " symbol" );
725724 symEl.setAttribute ( " type" , _nameForSymbolType ( symbol->type () ) );
726725 symEl.setAttribute ( " name" , name );
727726 symEl.setAttribute ( " outputUnit" , encodeOutputUnit ( symbol->outputUnit () ) );
728727 symEl.setAttribute ( " alpha" , QString::number ( symbol->alpha () ) );
729728 QgsDebugMsg ( " num layers " + QString::number ( symbol->symbolLayerCount () ) );
729+
730730 for ( int i = 0 ; i < symbol->symbolLayerCount (); i++ )
731731 {
732732 QgsSymbolLayerV2* layer = symbol->symbolLayer ( i );
@@ -735,14 +735,13 @@ QDomElement QgsSymbolLayerV2Utils::saveSymbol( QString name, QgsSymbolV2* symbol
735735 layerEl.setAttribute ( " class" , layer->layerType () );
736736 layerEl.setAttribute ( " locked" , layer->isLocked () );
737737 layerEl.setAttribute ( " pass" , layer->renderingPass () );
738-
739- if ( subSymbols != NULL && layer->subSymbol () != NULL )
738+ saveProperties ( layer-> properties (), doc, layerEl );
739+ if ( layer->subSymbol () != NULL )
740740 {
741741 QString subname = QString ( " @%1@%2" ).arg ( name ).arg ( i );
742- subSymbols->insert ( subname, layer->subSymbol () );
742+ QDomElement subEl = saveSymbol ( subname, layer->subSymbol (), doc );
743+ layerEl.appendChild ( subEl );
743744 }
744-
745- saveProperties ( layer->properties (), doc, layerEl );
746745 symEl.appendChild ( layerEl );
747746 }
748747
@@ -2270,22 +2269,13 @@ QDomElement QgsSymbolLayerV2Utils::saveSymbols( QgsSymbolV2Map& symbols, QString
22702269{
22712270 QDomElement symbolsElem = doc.createElement ( tagName );
22722271
2273- QMap<QString, QgsSymbolV2*> subSymbols;
2274-
22752272 // save symbols
22762273 for ( QMap<QString, QgsSymbolV2*>::iterator its = symbols.begin (); its != symbols.end (); ++its )
22772274 {
2278- QDomElement symEl = saveSymbol ( its.key (), its.value (), doc, &subSymbols );
2275+ QDomElement symEl = saveSymbol ( its.key (), its.value (), doc );
22792276 symbolsElem.appendChild ( symEl );
22802277 }
22812278
2282- // add subsymbols, don't allow subsymbols for them (to keep things simple)
2283- for ( QMap<QString, QgsSymbolV2*>::iterator itsub = subSymbols.begin (); itsub != subSymbols.end (); ++itsub )
2284- {
2285- QDomElement subsymEl = saveSymbol ( itsub.key (), itsub.value (), doc );
2286- symbolsElem.appendChild ( subsymEl );
2287- }
2288-
22892279 return symbolsElem;
22902280}
22912281
0 commit comments