Skip to content

Commit 48ce385

Browse files
committedOct 2, 2015
[GRASS] use the same filter for modules tree and list
1 parent 00ea5b4 commit 48ce385

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed
 

‎src/plugins/grass/qgsgrasstools.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class QgsGrassToolsTreeFilterProxyModel : public QSortFilterProxyModel
5656
: QSortFilterProxyModel( parent ), mModel( 0 )
5757
{
5858
setDynamicSortFilter( true );
59+
mRegExp.setPatternSyntax( QRegExp::Wildcard );
60+
mRegExp.setCaseSensitivity( Qt::CaseInsensitive );
5961
}
6062

6163
void setSourceModel( QAbstractItemModel * sourceModel ) override
@@ -68,19 +70,24 @@ class QgsGrassToolsTreeFilterProxyModel : public QSortFilterProxyModel
6870
{
6971
QgsDebugMsg( QString( "filter = %1" ).arg( filter ) );
7072
if ( mFilter == filter )
73+
{
7174
return;
75+
}
7276
mFilter = filter;
77+
mRegExp.setPattern( mFilter );
78+
7379
invalidateFilter();
7480
}
7581

7682
protected:
7783

7884
QAbstractItemModel* mModel;
79-
QString mFilter; //filter string provided
85+
QString mFilter; // filter string provided
86+
QRegExp mRegExp; // regular expression constructed from filter string
8087

8188
bool filterAcceptsString( const QString & value ) const
8289
{
83-
return value.contains( mFilter, Qt::CaseInsensitive );
90+
return value.contains( mRegExp );
8491
}
8592

8693
// It would be better to apply the filer only to expanded (visible) items, but using mapFromSource() + view here was causing strange errors
@@ -628,7 +635,9 @@ void QgsGrassTools::on_mFilterInput_textChanged( QString theText )
628635
mTreeView->expandAll();
629636
}
630637

631-
QRegExp::PatternSyntax mySyntax = QRegExp::PatternSyntax( QRegExp::RegExp );
638+
// using simple wildcard filter which is probably what users is expecting, at least until
639+
// there is a filter type switch in UI
640+
QRegExp::PatternSyntax mySyntax = QRegExp::PatternSyntax( QRegExp::Wildcard );
632641
Qt::CaseSensitivity myCaseSensitivity = Qt::CaseInsensitive;
633642
QRegExp myRegExp( theText, myCaseSensitivity, mySyntax );
634643
mModelProxy->setFilterRegExp( myRegExp );

0 commit comments

Comments
 (0)
Please sign in to comment.