Skip to content

Commit 96c3d92

Browse files
committed
Properly handle non matching number of WMS styles and layers in WMS provider (inspired by PR #2001)
(cherry picked from commit bcb9513)
1 parent a64ef9f commit 96c3d92

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/providers/wms/qgswmsprovider.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ QgsWmsProvider::QgsWmsProvider( QString const& uri, const QgsWmsCapabilities* ca
123123
return;
124124
}
125125

126-
addLayers();
126+
if ( !addLayers() )
127+
return;
127128

128129
// if there are already parsed capabilities, use them!
129130
if ( capabilities )
@@ -265,15 +266,14 @@ QString QgsWmsProvider::getLegendGraphicUrl() const
265266
return url.isEmpty() ? url : prepareUri( url );
266267
}
267268

268-
void QgsWmsProvider::addLayers()
269+
bool QgsWmsProvider::addLayers()
269270
{
270271
QgsDebugMsg( "Entering: layers:" + mSettings.mActiveSubLayers.join( ", " ) + ", styles:" + mSettings.mActiveSubStyles.join( ", " ) );
271272

272273
if ( mSettings.mActiveSubLayers.size() != mSettings.mActiveSubStyles.size() )
273274
{
274275
QgsMessageLog::logMessage( tr( "Number of layers and styles don't match" ), tr( "WMS" ) );
275-
mValid = false;
276-
return;
276+
return false;
277277
}
278278

279279
// Set the visibility of these new layers on by default
@@ -290,6 +290,8 @@ void QgsWmsProvider::addLayers()
290290
mTileLayer = 0;
291291

292292
QgsDebugMsg( "Exiting." );
293+
294+
return true;
293295
}
294296

295297
void QgsWmsProvider::setConnectionName( QString const &connName )

src/providers/wms/qgswmsprovider.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ class QgsWmsProvider : public QgsRasterDataProvider
385385
/**
386386
* Add the list of WMS layer names to be rendered by this server
387387
*/
388-
void addLayers();
388+
bool addLayers();
389389

390390
/**
391391
* Set the image projection (in WMS CRS format) used in the transfer from the WMS server

0 commit comments

Comments
 (0)