@@ -166,7 +166,7 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *theLayer, QWid
166
166
167
167
// connect table info to window
168
168
connect ( mMainView , SIGNAL ( filterChanged () ), this , SLOT ( updateTitle () ) );
169
- connect ( mMainView , SIGNAL ( filterExpressionSet ( QString, QgsAttributeForm::FilterType ) ), this , SLOT ( setFilterExpression ( QString, QgsAttributeForm::FilterType ) ) );
169
+ connect ( mMainView , SIGNAL ( filterExpressionSet ( QString, QgsAttributeForm::FilterType ) ), this , SLOT ( formFilterSet ( QString, QgsAttributeForm::FilterType ) ) );
170
170
connect ( mMainView , SIGNAL ( formModeChanged ( QgsAttributeForm::Mode ) ), this , SLOT ( viewModeChanged ( QgsAttributeForm::Mode ) ) );
171
171
172
172
// info from table to application
@@ -388,6 +388,11 @@ void QgsAttributeTableDialog::viewModeChanged( QgsAttributeForm::Mode mode )
388
388
mSearchFormButton ->setChecked ( false );
389
389
}
390
390
391
+ void QgsAttributeTableDialog::formFilterSet ( const QString& filter, QgsAttributeForm::FilterType type )
392
+ {
393
+ setFilterExpression ( filter, type, true );
394
+ }
395
+
391
396
void QgsAttributeTableDialog::runFieldCalculation ( QgsVectorLayer* layer, const QString& fieldName, const QString& expression, const QgsFeatureIds& filteredIds )
392
397
{
393
398
QApplication::setOverrideCursor ( Qt::WaitCursor );
@@ -524,7 +529,7 @@ void QgsAttributeTableDialog::filterExpressionBuilder()
524
529
525
530
if ( dlg.exec () == QDialog::Accepted )
526
531
{
527
- setFilterExpression ( dlg.expressionText () );
532
+ setFilterExpression ( dlg.expressionText (), QgsAttributeForm::ReplaceFilter, true );
528
533
}
529
534
}
530
535
@@ -883,7 +888,8 @@ void QgsAttributeTableDialog::openConditionalStyles()
883
888
mMainView ->openConditionalStyles ();
884
889
}
885
890
886
- void QgsAttributeTableDialog::setFilterExpression ( const QString& filterString, QgsAttributeForm::FilterType type )
891
+ void QgsAttributeTableDialog::setFilterExpression ( const QString& filterString, QgsAttributeForm::FilterType type,
892
+ bool alwaysShowFilter )
887
893
{
888
894
QString filter;
889
895
if ( !mFilterQuery ->text ().isEmpty () && !filterString.isEmpty () )
@@ -913,9 +919,11 @@ void QgsAttributeTableDialog::setFilterExpression( const QString& filterString,
913
919
return ;
914
920
}
915
921
916
- if ( !mCurrentSearchWidgetWrapper || !mCurrentSearchWidgetWrapper ->applyDirectly () )
922
+ mFilterQuery ->setText ( filter );
923
+
924
+ if ( alwaysShowFilter || !mCurrentSearchWidgetWrapper || !mCurrentSearchWidgetWrapper ->applyDirectly () )
917
925
{
918
- mFilterQuery -> setText ( filter );
926
+
919
927
mFilterButton ->setDefaultAction ( mActionAdvancedFilter );
920
928
mFilterButton ->setPopupMode ( QToolButton::MenuButtonPopup );
921
929
mFilterQuery ->setVisible ( true );
0 commit comments