diff --git a/src/app/layout/qgslayoutatlaswidget.cpp b/src/app/layout/qgslayoutatlaswidget.cpp index c2ae5fd8932..6e789614bbb 100644 --- a/src/app/layout/qgslayoutatlaswidget.cpp +++ b/src/app/layout/qgslayoutatlaswidget.cpp @@ -65,6 +65,14 @@ QgsLayoutAtlasWidget::QgsLayoutAtlasWidget( QWidget *parent, QgsPrintLayout *lay } connect( mAtlasFileFormat, static_cast( &QComboBox::currentIndexChanged ), this, [ = ]( int ) { changeFileFormat(); } ); + // Disconnect when layout is destroyed + connect( layout, &QgsPrintLayout::destroyed, [ = ] + { + disconnect( mAtlasCoverageLayerComboBox, &QgsMapLayerComboBox::layerChanged, mAtlasSortExpressionWidget, &QgsFieldExpressionWidget::setLayer ); + disconnect( mAtlasCoverageLayerComboBox, &QgsMapLayerComboBox::layerChanged, mPageNameWidget, &QgsFieldExpressionWidget::setLayer ); + disconnect( mAtlasCoverageLayerComboBox, &QgsMapLayerComboBox::layerChanged, this, &QgsLayoutAtlasWidget::changeCoverageLayer ); + } ); + updateGuiElements(); }