@@ -599,8 +599,9 @@ QgsComposition* QgsWMSProjectParser::initComposition( const QString& composerTem
599
599
#endif
600
600
if ( legend->autoUpdateModel () )
601
601
{
602
+ legend->setAutoUpdateModel ( false );
602
603
model->setRootGroup ( projectLayerTreeGroup () );
603
- legend->synchronizeWithModel ();
604
+ legend->updateLegend ();
604
605
}
605
606
// if the legend has no map
606
607
// we will load all layers
@@ -2461,6 +2462,41 @@ QgsLayerTreeGroup* QgsWMSProjectParser::projectLayerTreeGroup() const
2461
2462
return rootGroup;
2462
2463
}
2463
2464
2465
+ /* const QDomDocument* projectDoc = mProjectParser->xmlDocument();
2466
+ if ( projectDoc )
2467
+ {
2468
+ QDomElement qgisElem = projectDoc->documentElement();
2469
+ if ( qgisElem.isNull() )
2470
+ {
2471
+ QDomElement layerTreeElem = qgisElem.firstChildElement( "layer-tree-group" );*/
2472
+ if ( layerTreeElem.isNull () )
2473
+ {
2474
+ const QHash< QString, QDomElement > &projectLayerElements = mProjectParser ->projectLayerElementsById ();
2475
+ QDomNodeList treeLayerNodeList = layerTreeElem.elementsByTagName ( " layer-tree-layer" );
2476
+ for ( int i = 0 ; i < treeLayerNodeList.size (); ++i )
2477
+ {
2478
+ QDomElement treeLayerElem = treeLayerNodeList.at ( i ).toElement ();
2479
+ QString layerId = treeLayerElem.attribute ( " id" );
2480
+ QgsMapLayer * layer = QgsMapLayerRegistry::instance ()->mapLayer ( layerId );
2481
+ if ( layer )
2482
+ {
2483
+ continue ;
2484
+ }
2485
+
2486
+ QHash< QString, QDomElement >::const_iterator layerElemIt = projectLayerElements.find ( layerId );
2487
+ if ( layerElemIt != projectLayerElements.constEnd () )
2488
+ {
2489
+ layer = mProjectParser ->createLayerFromElement ( layerElemIt.value (), true );
2490
+ }
2491
+ if ( layer )
2492
+ {
2493
+ QgsMapLayerRegistry::instance ()->addMapLayer ( layer );
2494
+ }
2495
+ }
2496
+ }
2497
+ /* }
2498
+ }*/
2499
+
2464
2500
return QgsLayerTreeGroup::readXML ( layerTreeElem );
2465
2501
}
2466
2502
0 commit comments