- /** Checks if a given term in the Baloo::Query::searchString() is a special search term.
- * This is a copy of `DolphinFacetsWidget::isSearchTerm()` method.
+ /** Checks if a given term in the Baloo::Query::searchString() is a special search term
+ * @return: the specific search token of the term, or an empty QString() if none is found
QLatin1String("modified>="),
QLatin1String("rating>="),
QLatin1String("tag:"), QLatin1String("tag=")
QLatin1String("modified>="),
QLatin1String("rating>="),
QLatin1String("tag:"), QLatin1String("tag=")
- QString cleanedText = text;
- if (!cleanedText.isEmpty() && cleanedText.at(0) == QLatin1Char('"')) {
- cleanedText = cleanedText.mid(1);
+ if (text.length() >= 2 && text.at(0) == QLatin1Char('"')
+ && text.back() == QLatin1Char('"')) {
+ return text.mid(1, text.size() - 2);
const QStringList subTerms = splitOutsideQuotes(query.searchString());
foreach (const QString& subTerm, subTerms) {
const QStringList subTerms = splitOutsideQuotes(query.searchString());
foreach (const QString& subTerm, subTerms) {
- if (subTerm.startsWith(QLatin1String("filename:"))) {
- fileName = stripQuotes(subTerm.mid(9));
- if (!fileName.isEmpty()) {
+ const QString token = searchTermToken(subTerm);
+ const QString value = stripQuotes(subTerm.mid(token.length()));
+
+ if (token == QLatin1String("filename:")) {
+ if (!value.isEmpty()) {
+ fileName = value;
- } else {
- const QString cleanedTerm = stripQuotes(subTerm);
- if (!cleanedTerm.isEmpty()) {
- textParts << cleanedTerm;
- model.m_hasContentSearch = true;
- }
+ } else if (!value.isEmpty()) {
+ textParts << value;
+ model.m_hasContentSearch = true;