Add info about usable "expression dialect" to filter dialog (#58730)

Show SQL dialect used for layer filtering
This commit is contained in:
Hannes 2024-09-30 03:25:23 +02:00 committed by GitHub
parent 39782d67fd
commit 3388f1f683
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 2 deletions

View File

@ -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 <a href=\"%1\">%2</a> 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 );

View File

@ -322,9 +322,16 @@ p, li { white-space: pre-wrap; }
<property name="bottomMargin">
<number>11</number>
</property>
<item row="0" column="0">
<item row="1" column="0">
<widget class="QgsCodeEditorSQL" name="mTxtSql" native="true"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lblProviderFilterInfo">
<property name="text">
<string>Provider expression dialect</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>