Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #42754 from rouault/fix_crash_bad_vector_layer
Browse files Browse the repository at this point in the history
Gui: fix crash when opening vector layer property dialog on a bad layer
  • Loading branch information
elpaso authored and nyalldawson committed Apr 17, 2021
1 parent fc40b4d commit 178f6a1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
6 changes: 6 additions & 0 deletions src/core/raster/qgsrasterlayer.cpp
Expand Up @@ -312,6 +312,9 @@ QgsLegendColorList QgsRasterLayer::legendSymbologyItems() const

QString QgsRasterLayer::htmlMetadata() const
{
if ( !mDataProvider )
return QString();

QgsLayerMetadataFormatter htmlFormatter( metadata() );
QString myMetadata = QStringLiteral( "<html><head></head>\n<body>\n" );

Expand Down Expand Up @@ -2173,6 +2176,9 @@ bool QgsRasterLayer::writeXml( QDomNode &layer_node,
QDomDocument &document,
const QgsReadWriteContext &context ) const
{
if ( !mDataProvider )
return false;

// first get the layer element so that we can append the type attribute

QDomElement mapLayerNode = layer_node.toElement();
Expand Down
13 changes: 10 additions & 3 deletions src/gui/vector/qgsvectorlayerproperties.cpp
Expand Up @@ -944,7 +944,10 @@ void QgsVectorLayerProperties::loadDefaultStyle_clicked()
QString msg;
bool defaultLoadedFlag = false;

if ( mLayer->dataProvider()->isSaveAndLoadStyleToDatabaseSupported() )
const QgsVectorDataProvider *provider = mLayer->dataProvider();
if ( !provider )
return;
if ( provider->isSaveAndLoadStyleToDatabaseSupported() )
{
QMessageBox askToUser;
askToUser.setText( tr( "Load default style from: " ) );
Expand Down Expand Up @@ -999,7 +1002,10 @@ void QgsVectorLayerProperties::saveDefaultStyle_clicked()
{
apply();
QString errorMsg;
if ( mLayer->dataProvider()->isSaveAndLoadStyleToDatabaseSupported() )
const QgsVectorDataProvider *provider = mLayer->dataProvider();
if ( !provider )
return;
if ( provider->isSaveAndLoadStyleToDatabaseSupported() )
{
QMessageBox askToUser;
askToUser.setText( tr( "Save default style to: " ) );
Expand Down Expand Up @@ -1857,7 +1863,8 @@ void QgsVectorLayerProperties::optionsStackedWidget_CurrentChanged( int index )

void QgsVectorLayerProperties::mSimplifyDrawingGroupBox_toggled( bool checked )
{
if ( !( mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::SimplifyGeometries ) )
const QgsVectorDataProvider *provider = mLayer->dataProvider();
if ( !( provider && ( provider->capabilities() & QgsVectorDataProvider::SimplifyGeometries ) != 0 ) )
{
mSimplifyDrawingAtProvider->setEnabled( false );
}
Expand Down

0 comments on commit 178f6a1

Please sign in to comment.