summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filewidget.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index df97b3a..6d67007 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -182,5 +182,23 @@ void FileWidget::writeSettings(){
}
void FileWidget::searchFile(){
-
+ mFileView->selectionModel()->clear();
+ int count = mProxy->rowCount();
+ if(mSearchFile->text().isEmpty()){
+ return;
+ }
+ QRegularExpression regex(mSearchFile->text(), QRegularExpression::CaseInsensitiveOption);
+ int success = 0;
+ for(int i = 0; i < count; ++i){
+ QModelIndex cur = mProxy->index(i, 1);
+ QString fn = cur.data().toString();
+ QRegularExpressionMatch m = regex.match(fn);
+ if(m.hasMatch()){
+ ++success;
+ mFileView->selectionModel()->select(cur, QItemSelectionModel::Select | QItemSelectionModel::Rows);
+ if(success == 1){
+ mFileView->scrollTo(cur);
+ }
+ }
+ }
}