Fix project defaults to EPSG:4326 when a non-spatial layer is first

layer added

Fixes #19690
This commit is contained in:
Nyall Dawson 2018-08-25 16:00:48 +10:00
parent 1b560559e5
commit d84252c97c
2 changed files with 11 additions and 5 deletions

View File

@ -63,9 +63,15 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
else
setCanvasLayers( mRoot, canvasLayers, overviewLayers, allLayerOrder );
QList<QgsLayerTreeLayer *> layerNodes = mRoot->findLayers();
int currentLayerCount = layerNodes.count();
bool firstLayers = mAutoSetupOnFirstLayer && mLastLayerCount == 0 && currentLayerCount != 0;
const QList<QgsLayerTreeLayer *> 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;

Binary file not shown.