Skip to content

Commit 294f8ac

Browse files
authoredJun 22, 2018
Merge pull request #7303 from rldhont/server-wms-getprint-autoupdate-legend-218
[Bugfix][Server] Display composer legend with auto update like the Desktop
2 parents 9fba24a + 259290a commit 294f8ac

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed
 

‎src/server/qgswmsprojectparser.cpp

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,8 +599,9 @@ QgsComposition* QgsWMSProjectParser::initComposition( const QString& composerTem
599599
#endif
600600
if ( legend->autoUpdateModel() )
601601
{
602+
legend->setAutoUpdateModel( false );
602603
model->setRootGroup( projectLayerTreeGroup() );
603-
legend->synchronizeWithModel();
604+
legend->updateLegend();
604605
}
605606
// if the legend has no map
606607
// we will load all layers
@@ -2461,6 +2462,41 @@ QgsLayerTreeGroup* QgsWMSProjectParser::projectLayerTreeGroup() const
24612462
return rootGroup;
24622463
}
24632464

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+
24642500
return QgsLayerTreeGroup::readXML( layerTreeElem );
24652501
}
24662502

0 commit comments

Comments
 (0)
Please sign in to comment.