diff options
Diffstat (limited to 'src/searchterm.cpp')
| -rw-r--r-- | src/searchterm.cpp | 15 |
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 |
