Showing with 5 additions and 3 deletions.
  1. +1 −0 src/app/qgsattributetabledialog.cpp
  2. +4 −3 src/core/qgsexpression.cpp
1 change: 1 addition & 0 deletions src/app/qgsattributetabledialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -558,6 +558,7 @@ void QgsAttributeTableDialog::filterQueryChanged( const QString& query )
}

setFilterExpression( str );
updateTitle();
}

void QgsAttributeTableDialog::filterQueryAccepted()
Expand Down
7 changes: 4 additions & 3 deletions src/core/qgsexpression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1936,10 +1936,11 @@ QVariant QgsExpression::NodeBinaryOperator::eval( QgsExpression* parent, QgsFeat
bool matches;
if ( mOp == boLike || mOp == boILike || mOp == boNotLike || mOp == boNotILike ) // change from LIKE syntax to regexp
{
QString esc_regexp = QRegExp::escape( regexp );
// XXX escape % and _ ???
regexp.replace( "%", ".*" );
regexp.replace( "_", "." );
matches = QRegExp( regexp, mOp == boLike || mOp == boNotLike ? Qt::CaseSensitive : Qt::CaseInsensitive ).exactMatch( str );
esc_regexp.replace( "%", ".*" );
esc_regexp.replace( "_", "." );
matches = QRegExp( esc_regexp, mOp == boLike || mOp == boNotLike ? Qt::CaseSensitive : Qt::CaseInsensitive ).exactMatch( str );
}
else
{
Expand Down