summaryrefslogtreecommitdiffstats
path: root/src/searchterm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/searchterm.cpp')
-rw-r--r--src/searchterm.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/searchterm.cpp b/src/searchterm.cpp
index acc64c6..6bfb521 100644
--- a/src/searchterm.cpp
+++ b/src/searchterm.cpp
@@ -90,4 +90,19 @@ QString extend(const QString &existing, const QString &addition)
return QStringLiteral("(%1) AND (%2)").arg(left, right);
}
+QString exclude(const QString &existing, const QString &addition)
+{
+ const QString left = existing.trimmed();
+ const QString right = addition.trimmed();
+
+ if (right.isEmpty())
+ return left;
+ // NOT a replace, unlike extend(): see the header. An empty left would make
+ // this "everything except", which no right-click asked for.
+ if (left.isEmpty())
+ return QString();
+
+ return QStringLiteral("(%1) AND NOT (%2)").arg(left, right);
+}
+
} // namespace SearchTerm