diff --git a/src/gui/qgsquerybuilder.cpp b/src/gui/qgsquerybuilder.cpp index 03965f201e50..aa80e22272d2 100644 --- a/src/gui/qgsquerybuilder.cpp +++ b/src/gui/qgsquerybuilder.cpp @@ -93,7 +93,34 @@ QgsQueryBuilder::QgsQueryBuilder( QgsVectorLayer *layer, connect( layer, &QgsVectorLayer::subsetStringChanged, this, &QgsQueryBuilder::layerSubsetStringChanged ); layerSubsetStringChanged(); - lblDataUri->setText( tr( "Set provider filter on %1" ).arg( layer->name() ) ); + QString subsetStringDialect; + QString subsetStringHelpUrl; + + if ( QgsDataProvider *provider = layer->dataProvider() ) + { + lblDataUri->setText( tr( "Set provider filter on %1 (provider: %2)" ).arg( layer->name(), provider->name() ) ); + subsetStringDialect = provider->subsetStringDialect(); + subsetStringHelpUrl = provider->subsetStringHelpUrl(); + } + else + { + lblDataUri->setText( tr( "Set provider filter on %1 (provider: %2)" ).arg( layer->name(), layer->providerType() ) ); + } + + if ( !subsetStringDialect.isEmpty() && !subsetStringHelpUrl.isEmpty() ) + { + lblProviderFilterInfo->setOpenExternalLinks( true ); + lblProviderFilterInfo->setText( tr( "Enter a %2 to filter the layer" ).arg( subsetStringHelpUrl ).arg( subsetStringDialect ) ) ; + } + else if ( !subsetStringDialect.isEmpty() ) + { + lblProviderFilterInfo->setText( tr( "Enter a %1 to filter the layer" ).arg( subsetStringDialect ) ) ; + } + else + { + lblProviderFilterInfo->hide(); + } + mTxtSql->setText( mOrigSubsetString ); mFilterLineEdit->setShowSearchIcon( true ); diff --git a/src/ui/qgsquerybuilderbase.ui b/src/ui/qgsquerybuilderbase.ui index df0249bbd96a..c8a5217d9402 100644 --- a/src/ui/qgsquerybuilderbase.ui +++ b/src/ui/qgsquerybuilderbase.ui @@ -322,9 +322,16 @@ p, li { white-space: pre-wrap; } 11 - + + + + + Provider expression dialect + + +