@@ -29,7 +29,7 @@ QgsLayerTreeMapCanvasBridge::QgsLayerTreeMapCanvasBridge( QgsLayerTree *root, Qg
29
29
, mCanvas( canvas )
30
30
, mPendingCanvasUpdate( false )
31
31
, mAutoSetupOnFirstLayer( true )
32
- , mLastLayerCount ( !root->findLayers ().isEmpty() )
32
+ , mHasLayersLoaded ( !root->findLayers ().isEmpty() )
33
33
{
34
34
connect ( root, &QgsLayerTreeGroup::customPropertyChanged, this , &QgsLayerTreeMapCanvasBridge::nodeCustomPropertyChanged );
35
35
connect ( root, &QgsLayerTreeNode::visibilityChanged, this , &QgsLayerTreeMapCanvasBridge::nodeVisibilityChanged );
@@ -44,7 +44,8 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
44
44
45
45
if ( mRoot ->hasCustomLayerOrder () )
46
46
{
47
- Q_FOREACH ( QgsMapLayer *layer, mRoot ->customLayerOrder () )
47
+ const QList<QgsMapLayer *> customOrderLayers = mRoot ->customLayerOrder ();
48
+ for ( const QgsMapLayer *layer : customOrderLayers )
48
49
{
49
50
QgsLayerTreeLayer *nodeLayer = mRoot ->findLayer ( layer->id () );
50
51
if ( nodeLayer )
@@ -61,7 +62,9 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
61
62
}
62
63
}
63
64
else
65
+ {
64
66
setCanvasLayers ( mRoot , canvasLayers, overviewLayers, allLayerOrder );
67
+ }
65
68
66
69
const QList<QgsLayerTreeLayer *> layerNodes = mRoot ->findLayers ();
67
70
int currentSpatialLayerCount = 0 ;
@@ -71,7 +74,7 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
71
74
currentSpatialLayerCount++;
72
75
}
73
76
74
- bool firstLayers = mAutoSetupOnFirstLayer && mLastLayerCount == 0 && currentSpatialLayerCount != 0 ;
77
+ bool firstLayers = mAutoSetupOnFirstLayer && ! mHasLayersLoaded && currentSpatialLayerCount != 0 ;
75
78
76
79
mCanvas ->setLayers ( canvasLayers );
77
80
if ( mOverviewCanvas )
@@ -86,7 +89,7 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
86
89
if ( !mFirstCRS .isValid () )
87
90
{
88
91
// find out what is the first used CRS in case we may need to turn on OTF projections later
89
- Q_FOREACH ( QgsLayerTreeLayer *layerNode, layerNodes )
92
+ for ( const QgsLayerTreeLayer *layerNode : layerNodes )
90
93
{
91
94
if ( layerNode->layer () && layerNode->layer ()->crs ().isValid () )
92
95
{
@@ -101,7 +104,7 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
101
104
QgsProject::instance ()->setCrs ( mFirstCRS );
102
105
}
103
106
104
- mLastLayerCount = currentSpatialLayerCount;
107
+ mHasLayersLoaded = currentSpatialLayerCount;
105
108
if ( currentSpatialLayerCount == 0 )
106
109
mFirstCRS = QgsCoordinateReferenceSystem ();
107
110
@@ -125,7 +128,8 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers( QgsLayerTreeNode *node, QList
125
128
}
126
129
}
127
130
128
- Q_FOREACH ( QgsLayerTreeNode *child, node->children () )
131
+ const QList<QgsLayerTreeNode *> children = node->children ();
132
+ for ( QgsLayerTreeNode *child : children )
129
133
setCanvasLayers ( child, canvasLayers, overviewLayers, allLayers );
130
134
}
131
135
0 commit comments