Skip to content

Commit

Permalink
Consider identify disabled layers in embedded projects
Browse files Browse the repository at this point in the history
  • Loading branch information
marco committed Aug 9, 2011
1 parent 43e8321 commit 2a9aabb
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion src/app/legend/qgslegend.cpp
Expand Up @@ -655,6 +655,18 @@ QgsLegendGroup* QgsLegend::addEmbeddedGroup( const QString& groupName, const QSt
return 0;
}

//store identify disabled layers of the embedded project
QSet<QString> embeddedIdentifyDisabledLayers;
QDomElement disabledLayersElem = projectDocument.documentElement().firstChildElement( "properties" ).firstChildElement( "Identify" ).firstChildElement( "disabledLayers" );
if ( !disabledLayersElem.isNull() )
{
QDomNodeList valueList = disabledLayersElem.elementsByTagName( "value" );
for ( int i = 0; i < valueList.size(); ++i )
{
embeddedIdentifyDisabledLayers.insert( valueList.at( i ).toElement().text() );
}
}

QDomElement legendElem = projectDocument.documentElement().firstChildElement( "legend" );
if ( legendElem.isNull() )
{
Expand Down Expand Up @@ -719,10 +731,18 @@ QgsLegendGroup* QgsLegend::addEmbeddedGroup( const QString& groupName, const QSt
group->insertChild( group->childCount(), cItem );
}

if( !visible )
if ( !visible )
{
cItem->setCheckState( 0, Qt::Unchecked );
}

//consider the layer might be identify disabled in its project
if ( embeddedIdentifyDisabledLayers.contains( layerId ) )
{
QStringList thisProjectIdentifyDisabledLayers = QgsProject::instance()->readListEntry( "Identify", "/disabledLayers" );
thisProjectIdentifyDisabledLayers.append( layerId );
QgsProject::instance()->writeEntry( "Identify", "/disabledLayers", thisProjectIdentifyDisabledLayers );
}
}
else if ( tagName == "legendgroup" )
{
Expand Down

0 comments on commit 2a9aabb

Please sign in to comment.