Skip to content

Commit

Permalink
No longer need to store custom layer order for canvas bridge
Browse files Browse the repository at this point in the history
Since it's now set at the project level
  • Loading branch information
nyalldawson committed Mar 13, 2017
1 parent 98eda35 commit e885064
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 19 deletions.
29 changes: 29 additions & 0 deletions src/core/qgsproject.cpp
Expand Up @@ -895,6 +895,35 @@ bool QgsProject::read()
layerOrder << mMapLayers.value( layerElem.attribute( QStringLiteral( "id" ) ) );
}
}
else
{
//old layer order nodes
QStringList order;
QDomElement elem = doc->documentElement().firstChildElement( QStringLiteral( "layer-tree-canvas" ) );
if ( elem.isNull() )
{
bool oldEnabled;
QgsLayerTreeUtils::readOldLegendLayerOrder( doc->documentElement().firstChildElement( QStringLiteral( "legend" ) ), oldEnabled, order );
}
else
{
QDomElement customOrderElem = elem.firstChildElement( QStringLiteral( "custom-order" ) );
if ( !customOrderElem.isNull() )
{

QDomElement itemElem = customOrderElem.firstChildElement( QStringLiteral( "item" ) );
while ( !itemElem.isNull() )
{
order.append( itemElem.text() );
itemElem = itemElem.nextSiblingElement( QStringLiteral( "item" ) );
}
}
}
Q_FOREACH ( const QString &id, order )
{
layerOrder << mMapLayers.value( id );
}
}
setLayerOrder( layerOrder );

// now that layers are loaded, we can resolve layer tree's references to the layers
Expand Down
21 changes: 2 additions & 19 deletions src/gui/layertree/qgslayertreemapcanvasbridge.cpp
Expand Up @@ -195,24 +195,15 @@ void QgsLayerTreeMapCanvasBridge::readProject( const QDomDocument &doc )
if ( QgsLayerTreeUtils::readOldLegendLayerOrder( doc.documentElement().firstChildElement( QStringLiteral( "legend" ) ), oldEnabled, oldOrder ) )
{
setHasCustomLayerOrder( oldEnabled );
setCustomLayerOrder( oldOrder );
// oldOrder is now unused!
}
return;
}

QDomElement customOrderElem = elem.firstChildElement( QStringLiteral( "custom-order" ) );
if ( !customOrderElem.isNull() )
{
QStringList order;
QDomElement itemElem = customOrderElem.firstChildElement( QStringLiteral( "item" ) );
while ( !itemElem.isNull() )
{
order.append( itemElem.text() );
itemElem = itemElem.nextSiblingElement( QStringLiteral( "item" ) );
}

setHasCustomLayerOrder( customOrderElem.attribute( QStringLiteral( "enabled" ), QString() ).toInt() );
setCustomLayerOrder( order );
}
}

Expand All @@ -221,15 +212,7 @@ void QgsLayerTreeMapCanvasBridge::writeProject( QDomDocument &doc )
QDomElement elem = doc.createElement( QStringLiteral( "layer-tree-canvas" ) );
QDomElement customOrderElem = doc.createElement( QStringLiteral( "custom-order" ) );
customOrderElem.setAttribute( QStringLiteral( "enabled" ), mHasCustomLayerOrder ? 1 : 0 );

Q_FOREACH ( const QString &layerId, mCustomLayerOrder )
{
QDomElement itemElem = doc.createElement( QStringLiteral( "item" ) );
itemElem.appendChild( doc.createTextNode( layerId ) );
customOrderElem.appendChild( itemElem );
}
elem.appendChild( customOrderElem );

doc.documentElement().appendChild( elem );
}

Expand Down Expand Up @@ -328,7 +311,7 @@ void QgsLayerTreeMapCanvasBridge::projectLayerOrderChanged()

setHasCustomLayerOrder( true );
QStringList ids;
Q_FOREACH( QgsMapLayer* layer, QgsProject::instance()->layerOrder() )
Q_FOREACH ( QgsMapLayer *layer, QgsProject::instance()->layerOrder() )
{
if ( layer )
ids << layer->id();
Expand Down

0 comments on commit e885064

Please sign in to comment.