Skip to content

Commit e885064

Browse files
committed
No longer need to store custom layer order for canvas bridge
Since it's now set at the project level
1 parent 98eda35 commit e885064

File tree

2 files changed

+31
-19
lines changed

2 files changed

+31
-19
lines changed

src/core/qgsproject.cpp

+29
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,35 @@ bool QgsProject::read()
895895
layerOrder << mMapLayers.value( layerElem.attribute( QStringLiteral( "id" ) ) );
896896
}
897897
}
898+
else
899+
{
900+
//old layer order nodes
901+
QStringList order;
902+
QDomElement elem = doc->documentElement().firstChildElement( QStringLiteral( "layer-tree-canvas" ) );
903+
if ( elem.isNull() )
904+
{
905+
bool oldEnabled;
906+
QgsLayerTreeUtils::readOldLegendLayerOrder( doc->documentElement().firstChildElement( QStringLiteral( "legend" ) ), oldEnabled, order );
907+
}
908+
else
909+
{
910+
QDomElement customOrderElem = elem.firstChildElement( QStringLiteral( "custom-order" ) );
911+
if ( !customOrderElem.isNull() )
912+
{
913+
914+
QDomElement itemElem = customOrderElem.firstChildElement( QStringLiteral( "item" ) );
915+
while ( !itemElem.isNull() )
916+
{
917+
order.append( itemElem.text() );
918+
itemElem = itemElem.nextSiblingElement( QStringLiteral( "item" ) );
919+
}
920+
}
921+
}
922+
Q_FOREACH ( const QString &id, order )
923+
{
924+
layerOrder << mMapLayers.value( id );
925+
}
926+
}
898927
setLayerOrder( layerOrder );
899928

900929
// now that layers are loaded, we can resolve layer tree's references to the layers

src/gui/layertree/qgslayertreemapcanvasbridge.cpp

+2-19
Original file line numberDiff line numberDiff line change
@@ -195,24 +195,15 @@ void QgsLayerTreeMapCanvasBridge::readProject( const QDomDocument &doc )
195195
if ( QgsLayerTreeUtils::readOldLegendLayerOrder( doc.documentElement().firstChildElement( QStringLiteral( "legend" ) ), oldEnabled, oldOrder ) )
196196
{
197197
setHasCustomLayerOrder( oldEnabled );
198-
setCustomLayerOrder( oldOrder );
198+
// oldOrder is now unused!
199199
}
200200
return;
201201
}
202202

203203
QDomElement customOrderElem = elem.firstChildElement( QStringLiteral( "custom-order" ) );
204204
if ( !customOrderElem.isNull() )
205205
{
206-
QStringList order;
207-
QDomElement itemElem = customOrderElem.firstChildElement( QStringLiteral( "item" ) );
208-
while ( !itemElem.isNull() )
209-
{
210-
order.append( itemElem.text() );
211-
itemElem = itemElem.nextSiblingElement( QStringLiteral( "item" ) );
212-
}
213-
214206
setHasCustomLayerOrder( customOrderElem.attribute( QStringLiteral( "enabled" ), QString() ).toInt() );
215-
setCustomLayerOrder( order );
216207
}
217208
}
218209

@@ -221,15 +212,7 @@ void QgsLayerTreeMapCanvasBridge::writeProject( QDomDocument &doc )
221212
QDomElement elem = doc.createElement( QStringLiteral( "layer-tree-canvas" ) );
222213
QDomElement customOrderElem = doc.createElement( QStringLiteral( "custom-order" ) );
223214
customOrderElem.setAttribute( QStringLiteral( "enabled" ), mHasCustomLayerOrder ? 1 : 0 );
224-
225-
Q_FOREACH ( const QString &layerId, mCustomLayerOrder )
226-
{
227-
QDomElement itemElem = doc.createElement( QStringLiteral( "item" ) );
228-
itemElem.appendChild( doc.createTextNode( layerId ) );
229-
customOrderElem.appendChild( itemElem );
230-
}
231215
elem.appendChild( customOrderElem );
232-
233216
doc.documentElement().appendChild( elem );
234217
}
235218

@@ -328,7 +311,7 @@ void QgsLayerTreeMapCanvasBridge::projectLayerOrderChanged()
328311

329312
setHasCustomLayerOrder( true );
330313
QStringList ids;
331-
Q_FOREACH( QgsMapLayer* layer, QgsProject::instance()->layerOrder() )
314+
Q_FOREACH ( QgsMapLayer *layer, QgsProject::instance()->layerOrder() )
332315
{
333316
if ( layer )
334317
ids << layer->id();

0 commit comments

Comments
 (0)