Skip to content

Commit

Permalink
Fix project defaults to EPSG:4326 when a non-spatial layer is first
Browse files Browse the repository at this point in the history
layer added

Fixes #19690
  • Loading branch information
nyalldawson committed Aug 27, 2018
1 parent 1b56055 commit d84252c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/gui/layertree/qgslayertreemapcanvasbridge.cpp
Expand Up @@ -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 )
Expand Down Expand Up @@ -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;
Expand Down
Binary file modified tests/testdata/polys_overlapping_with_id.dbf
Binary file not shown.

0 comments on commit d84252c

Please sign in to comment.