[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.
This commit is contained in:
rldhont 2017-04-25 18:03:28 +02:00
parent 70a21d47e9
commit c869fa29b6

View File

@ -61,10 +61,9 @@ void QgsOWSServerFilterRestorer::restoreLayerFilters( const QHash<QgsMapLayer *,
QgsVectorLayer *filteredLayer = qobject_cast<QgsVectorLayer *>( filterIt.key() );
if ( filteredLayer )
{
QgsVectorDataProvider *dp = filteredLayer->dataProvider();
if ( dp )
if ( !filteredLayer->setSubsetString( filterIt.value() ) )
{
dp->setSubsetString( filterIt.value() );
QgsMessageLog::logMessage( QStringLiteral( "Layer does not support Subset String" ) );
}
}
}