Skip to content

Commit

Permalink
WMS: don't crash on invalid layers
Browse files Browse the repository at this point in the history
Fixes #43580
  • Loading branch information
elpaso authored and github-actions[bot] committed Jun 7, 2021
1 parent acdcfc3 commit 40cc12f
Showing 1 changed file with 24 additions and 16 deletions.
40 changes: 24 additions & 16 deletions src/core/layertree/qgslayertreemodellegendnode.cpp
Expand Up @@ -1071,23 +1071,31 @@ QImage QgsWmsLegendNode::getLegendGraphic() const
// and start a new one ? // and start a new one ?


QgsRasterLayer *layer = qobject_cast<QgsRasterLayer *>( mLayerNode->layer() ); QgsRasterLayer *layer = qobject_cast<QgsRasterLayer *>( mLayerNode->layer() );
const QgsLayerTreeModel *mod = model();
if ( ! mod ) if ( layer && layer->isValid() )
return mImage; {
const QgsMapSettings *ms = mod->legendFilterMapSettings(); const QgsLayerTreeModel *mod = model();

if ( ! mod )
QgsRasterDataProvider *prov = layer->dataProvider(); return mImage;
if ( ! prov ) const QgsMapSettings *ms = mod->legendFilterMapSettings();
return mImage;

QgsRasterDataProvider *prov = layer->dataProvider();
Q_ASSERT( ! mFetcher ); if ( ! prov )
mFetcher.reset( prov->getLegendGraphicFetcher( ms ) ); return mImage;
if ( mFetcher )
Q_ASSERT( ! mFetcher );
mFetcher.reset( prov->getLegendGraphicFetcher( ms ) );
if ( mFetcher )
{
connect( mFetcher.get(), &QgsImageFetcher::finish, this, &QgsWmsLegendNode::getLegendGraphicFinished );
connect( mFetcher.get(), &QgsImageFetcher::error, this, &QgsWmsLegendNode::getLegendGraphicErrored );
connect( mFetcher.get(), &QgsImageFetcher::progress, this, &QgsWmsLegendNode::getLegendGraphicProgress );
mFetcher->start();
}
}
else
{ {
connect( mFetcher.get(), &QgsImageFetcher::finish, this, &QgsWmsLegendNode::getLegendGraphicFinished ); QgsDebugMsg( tr( "Failed to download legend graphics: layer is not valid." ) );
connect( mFetcher.get(), &QgsImageFetcher::error, this, &QgsWmsLegendNode::getLegendGraphicErrored );
connect( mFetcher.get(), &QgsImageFetcher::progress, this, &QgsWmsLegendNode::getLegendGraphicProgress );
mFetcher->start();
} }
} }


Expand Down

0 comments on commit 40cc12f

Please sign in to comment.