Skip to content

Commit c869fa2

Browse files
committedApr 25, 2017
[BUGFIX][Server] Filter 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 70a21d4 commit c869fa2

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed
 

‎src/server/qgsfilterrestorer.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,9 @@ void QgsOWSServerFilterRestorer::restoreLayerFilters( const QHash<QgsMapLayer *,
6161
QgsVectorLayer *filteredLayer = qobject_cast<QgsVectorLayer *>( filterIt.key() );
6262
if ( filteredLayer )
6363
{
64-
QgsVectorDataProvider *dp = filteredLayer->dataProvider();
65-
if ( dp )
64+
if ( !filteredLayer->setSubsetString( filterIt.value() ) )
6665
{
67-
dp->setSubsetString( filterIt.value() );
66+
QgsMessageLog::logMessage( QStringLiteral( "Layer does not support Subset String" ) );
6867
}
6968
}
7069
}

0 commit comments

Comments
 (0)
Please sign in to comment.