gui: mainwindow: Revert pathsQuery to original behaviour

Since 7c5c91e we wrongly merge lone words for paths queries too.
This creates unintended behaviour.

Fix it by creating a new paths query without merged words, which
restores the original behaviour.

Also, get rid of some redundant calls to createFinalTokens()
This commit is contained in:
Albert S. 2022-07-30 09:35:56 +02:00
джерело 052f169ef2
коміт 77f5c7e39d

@ -508,7 +508,6 @@ void MainWindow::lineEditReturnPressed()
LooqsQuery pathsQuery = tmpQuery;
this->contentSearchQuery = tmpQuery;
this->contentSearchQuery.setTokens({});
bool addContentSearch = false;
bool addPathSearch = false;
@ -526,17 +525,15 @@ void MainWindow::lineEditReturnPressed()
return tokens;
};
/* An explicit search, we just pass it on */
/* An explicit search, no lone words. We just pass it on */
if(!(tmpQuery.getTokensMask() & TokenType::WORD))
{
if(tmpQuery.hasContentSearch())
{
this->contentSearchQuery.setTokens(createFinalTokens(TokenType::FILTER_CONTENT_CONTAINS));
addContentSearch = true;
}
else
{
this->contentSearchQuery.setTokens(createFinalTokens(TokenType::FILTER_PATH_CONTAINS));
addPathSearch = true;
}
}
@ -551,8 +548,7 @@ void MainWindow::lineEditReturnPressed()
/* A content search and lone words, e. g. c:("to be or not") ebooks */
else if(tmpQuery.hasContentSearch() && (tmpQuery.getTokensMask() & TokenType::WORD))
{
this->contentSearchQuery = tmpQuery;
this->contentSearchQuery.setTokens(createFinalTokens(TokenType::FILTER_PATH_CONTAINS));
this->contentSearchQuery = LooqsQuery::build(q, TokenType::FILTER_PATH_CONTAINS, false);
addContentSearch = true;
addPathSearch = false;
}
@ -560,7 +556,7 @@ void MainWindow::lineEditReturnPressed()
else if(!tmpQuery.hasPathSearch() && !tmpQuery.hasContentSearch())
{
this->contentSearchQuery.setTokens(createFinalTokens(TokenType::FILTER_CONTENT_CONTAINS));
pathsQuery.setTokens(createFinalTokens(TokenType::FILTER_PATH_CONTAINS));
pathsQuery = LooqsQuery::build(q, TokenType::FILTER_PATH_CONTAINS, false);
addContentSearch = true;
addPathSearch = true;
}
@ -580,6 +576,10 @@ void MainWindow::lineEditReturnPressed()
}
results.append(searcher.search(this->contentSearchQuery));
}
else
{
this->contentSearchQuery.setTokens({});
}
return results;
});
searchWatcher.setFuture(searchFuture);