Skip to content

Commit 039bc20

Browse files
committedFeb 3, 2021
Followup #41285, fix crash when no layers exist in project
1 parent 54fab97 commit 039bc20

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14623,10 +14623,10 @@ void QgisApp::updateLabelToolButtons()
1462314623

1462414624
bool QgisApp::selectedLayersHaveSelection()
1462514625
{
14626-
QList<QgsMapLayer *> layers = mLayerTreeView->selectedLayers();
14626+
const QList<QgsMapLayer *> layers = mLayerTreeView->selectedLayers();
1462714627

1462814628
// If no selected layers, use active layer
14629-
if ( layers.size() == 0 )
14629+
if ( layers.empty() && activeLayer() )
1463014630
{
1463114631
if ( QgsVectorLayer *layer = qobject_cast<QgsVectorLayer *>( activeLayer() ) )
1463214632
return layer->selectedFeatureCount() > 0;
@@ -14647,10 +14647,10 @@ bool QgisApp::selectedLayersHaveSelection()
1464714647

1464814648
bool QgisApp::selectedLayersHaveSpatial()
1464914649
{
14650-
QList<QgsMapLayer *> layers = mLayerTreeView->selectedLayers();
14650+
const QList<QgsMapLayer *> layers = mLayerTreeView->selectedLayers();
1465114651

1465214652
// If no selected layers, use active layer
14653-
if ( layers.size() == 0 )
14653+
if ( layers.empty() && activeLayer() )
1465414654
return activeLayer()->isSpatial();
1465514655

1465614656
for ( QgsMapLayer *mapLayer : layers )
@@ -14666,12 +14666,14 @@ bool QgisApp::selectedLayersHaveSpatial()
1466614666

1466714667
void QgisApp::activateDeactivateMultipleLayersRelatedActions()
1466814668
{
14669+
// these actions are enabled whenever ANY selected layer is spatial
1466914670
const bool hasSpatial = selectedLayersHaveSpatial();
14670-
const bool hasSelection = selectedLayersHaveSelection();
14671-
1467214671
mActionZoomToLayers->setEnabled( hasSpatial );
14673-
mActionZoomToSelected->setEnabled( hasSelection );
1467414672
mActionPanToSelected->setEnabled( hasSpatial );
14673+
14674+
// this action is enabled whenever ANY selected layer has a selection
14675+
const bool hasSelection = selectedLayersHaveSelection();
14676+
mActionZoomToSelected->setEnabled( hasSelection );
1467514677
}
1467614678

1467714679
void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer *layer )

0 commit comments

Comments
 (0)
Please sign in to comment.