@@ -423,6 +423,7 @@ void QgsAttributeTableDialog::filterColumnChanged( QObject* filterAction )
423
423
// delete previous widget
424
424
if ( mCurrentSearchWidgetWrapper != 0 )
425
425
{
426
+ mCurrentSearchWidgetWrapper ->widget ()->setVisible ( false );
426
427
delete mCurrentSearchWidgetWrapper ;
427
428
}
428
429
QString fieldName = mFilterButton ->defaultAction ()->text ();
@@ -434,14 +435,14 @@ void QgsAttributeTableDialog::filterColumnChanged( QObject* filterAction )
434
435
const QgsEditorWidgetConfig widgetConfig = mLayer ->editorWidgetV2Config ( fldIdx );
435
436
mCurrentSearchWidgetWrapper = QgsEditorWidgetRegistry::instance ()->
436
437
createSearchWidget ( widgetType, mLayer , fldIdx, widgetConfig, mFilterContainer );
437
- if (mCurrentSearchWidgetWrapper ->applyDirectly ())
438
+ if ( mCurrentSearchWidgetWrapper ->applyDirectly () )
438
439
{
439
- connect ( mCurrentSearchWidgetWrapper , SIGNAL ( expressionChanged (QString) ), SLOT ( filterQueryChanged (QString) ) );
440
- mApplyFilterButton ->setVisible (false );
440
+ connect ( mCurrentSearchWidgetWrapper , SIGNAL ( expressionChanged ( QString ) ), SLOT ( filterQueryChanged ( QString ) ) );
441
+ mApplyFilterButton ->setVisible ( false );
441
442
}
442
443
else
443
444
{
444
- mApplyFilterButton ->setVisible (true );
445
+ mApplyFilterButton ->setVisible ( true );
445
446
}
446
447
447
448
replaceSearchWidget ( mFilterQuery , mCurrentSearchWidgetWrapper ->widget () );
@@ -730,15 +731,20 @@ void QgsAttributeTableDialog::filterQueryAccepted()
730
731
731
732
void QgsAttributeTableDialog::setFilterExpression ( QString filterString )
732
733
{
733
- mFilterQuery ->setText ( filterString );
734
- mFilterButton ->setDefaultAction ( mActionAdvancedFilter );
735
- mFilterButton ->setPopupMode ( QToolButton::MenuButtonPopup );
736
- mFilterQuery ->setVisible ( true );
737
- if ( mCurrentSearchWidgetWrapper != 0 )
734
+ if ( mCurrentSearchWidgetWrapper == 0 || !mCurrentSearchWidgetWrapper ->applyDirectly () )
738
735
{
739
- replaceSearchWidget ( mCurrentSearchWidgetWrapper ->widget (), mFilterQuery );
736
+ mFilterQuery ->setText ( filterString );
737
+ mFilterButton ->setDefaultAction ( mActionAdvancedFilter );
738
+ mFilterButton ->setPopupMode ( QToolButton::MenuButtonPopup );
739
+ mFilterQuery ->setVisible ( true );
740
+ mApplyFilterButton ->setVisible ( true );
741
+ if ( mCurrentSearchWidgetWrapper != 0 )
742
+ {
743
+ // replace search widget widget with the normal filter query line edit
744
+ replaceSearchWidget ( mCurrentSearchWidgetWrapper ->widget (), mFilterQuery );
745
+ }
740
746
}
741
- mApplyFilterButton -> setVisible ( true );
747
+
742
748
mMainView ->setFilterMode ( QgsAttributeTableFilterModel::ShowFilteredList );
743
749
744
750
QgsFeatureIds filteredFeatures;
0 commit comments