- if (subTerm.startsWith(QLatin1String("filename:"))) {
- const QString value = subTerm.mid(9);
- model.m_searchText = value;
- } else if (isSearchTerm(subTerm)) {
- model.m_searchTerms << subTerm;
+ const QString token = searchTermToken(subTerm);
+ const QString value = stripQuotes(subTerm.mid(token.length()));
+
+ if (token == QLatin1String("filename:")) {
+ if (!value.isEmpty()) {
+ fileName = value;
+ model.m_hasFileName = true;
+ }
+ continue;
+ } else if (!token.isEmpty()) {
+ model.m_searchTerms << token + value;
+ continue;
+ } else if (subTerm == QLatin1String("AND") && subTerm != subTerms.at(0) && subTerm != subTerms.back()) {
+ continue;
+ } else if (!value.isEmpty()) {
+ textParts << value;
+ model.m_hasContentSearch = true;
+ }
+ }
+
+ if (model.m_hasFileName) {
+ if (model.m_hasContentSearch) {
+ textParts << QStringLiteral("filename:\"%1\"").arg(fileName);
+ } else {
+ textParts << fileName;