From d84252c97c83d059d8a2fdb725468328f08b136f Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Sat, 25 Aug 2018 16:00:48 +1000 Subject: [PATCH] Fix project defaults to EPSG:4326 when a non-spatial layer is first layer added Fixes #19690 --- .../layertree/qgslayertreemapcanvasbridge.cpp | 16 +++++++++++----- tests/testdata/polys_overlapping_with_id.dbf | Bin 1329 -> 1329 bytes 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/gui/layertree/qgslayertreemapcanvasbridge.cpp b/src/gui/layertree/qgslayertreemapcanvasbridge.cpp index 2f3fc8d6268..b614edd6d49 100644 --- a/src/gui/layertree/qgslayertreemapcanvasbridge.cpp +++ b/src/gui/layertree/qgslayertreemapcanvasbridge.cpp @@ -63,9 +63,15 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers() else setCanvasLayers( mRoot, canvasLayers, overviewLayers, allLayerOrder ); - QList layerNodes = mRoot->findLayers(); - int currentLayerCount = layerNodes.count(); - bool firstLayers = mAutoSetupOnFirstLayer && mLastLayerCount == 0 && currentLayerCount != 0; + const QList layerNodes = mRoot->findLayers(); + int currentSpatialLayerCount = 0; + for ( QgsLayerTreeLayer *layerNode : layerNodes ) + { + if ( layerNode->layer() && layerNode->layer()->isSpatial() ) + currentSpatialLayerCount++; + } + + bool firstLayers = mAutoSetupOnFirstLayer && mLastLayerCount == 0 && currentSpatialLayerCount != 0; mCanvas->setLayers( canvasLayers ); if ( mOverviewCanvas ) @@ -95,8 +101,8 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers() QgsProject::instance()->setCrs( mFirstCRS ); } - mLastLayerCount = currentLayerCount; - if ( currentLayerCount == 0 ) + mLastLayerCount = currentSpatialLayerCount; + if ( currentSpatialLayerCount == 0 ) mFirstCRS = QgsCoordinateReferenceSystem(); mPendingCanvasUpdate = false; diff --git a/tests/testdata/polys_overlapping_with_id.dbf b/tests/testdata/polys_overlapping_with_id.dbf index eccf084fd60cad0d5dd5072fb8666ffa4ebc77e3..332ff8c954d58bcb16094365c8e0479fd649b89f 100644 GIT binary patch delta 13 UcmdnUwULX3xr{?{Ba1F802tE(`~Uy| delta 13 UcmdnUwULX3xr|kIBa1F802tK*{Qv*}