Skip to content

Commit b464da8

Browse files
committed
[BUGFIX][Server] QgsOWSServer restorer modifying layers and not well restoring them
The Subsetstring is updated through QgsVectorLayer::setSubsetString and restored by QgsVectorDataProvider::setSubsetString and it's not idempotent. The solution is to use QgsVectorLayer::setSubsetString in the 2 cases.
1 parent 8e3e30a commit b464da8

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/server/qgsowsserver.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,9 @@ void QgsOWSServer::restoreLayerFilters( const QHash<QgsMapLayer*, QString>& filt
5757
QgsVectorLayer* filteredLayer = qobject_cast<QgsVectorLayer*>( filterIt.key() );
5858
if ( filteredLayer )
5959
{
60-
QgsVectorDataProvider* dp = filteredLayer->dataProvider();
61-
if ( dp )
60+
if ( !filteredLayer->setSubsetString( filterIt.value() ) )
6261
{
63-
dp->setSubsetString( filterIt.value() );
62+
QgsMessageLog::logMessage( "Layer does not support Subset String" );
6463
}
6564
}
6665
}

0 commit comments

Comments
 (0)