diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-14 18:04:32 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-14 18:04:32 +0200 |
| commit | de1f7dba196d59cdaa46d2938e5e40e40f97a692 (patch) | |
| tree | 539fef2d664c1a83cc9ee7c7d69968ddc1f52b37 /src/messageview.cpp | |
| parent | 612eb64871de7e00f21a9b7ebf33d8179caa16bc (diff) | |
| download | qtmaildir-de1f7dba196d59cdaa46d2938e5e40e40f97a692.tar.gz qtmaildir-de1f7dba196d59cdaa46d2938e5e40e40f97a692.zip | |
feat(search): offer Exclude from search in both menus
Third entry in the message pane's submenus and in each details row,
greyed rather than hidden when the query bar is empty, so the feature
stays visible to someone exploring a fresh window.
requestSearch refuses an Exclude with no query as well, so the guard
does not rest on the menu's enabled state alone. Mutation checked:
disabling that condition fails the new test on the blocked emit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/messageview.cpp')
| -rw-r--r-- | src/messageview.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/messageview.cpp b/src/messageview.cpp index 9dc5b36..bdf1b13 100644 --- a/src/messageview.cpp +++ b/src/messageview.cpp @@ -577,6 +577,14 @@ void MessageView::addSearchEntries(QMenu *menu, const QList<SearchOffer> &offers connect(narrow, &QAction::triggered, this, [this, entry]() { emit searchRequested(entry.query, SearchTerm::SearchMode::Narrow); }); + + auto *exclude = sub->addAction(tr("Exclude from search")); + // Visible but greyed rather than hidden, as in the details dialog: + // there must be a query to exclude FROM. + exclude->setEnabled(m_hasQuery); + connect(exclude, &QAction::triggered, this, [this, entry]() { + emit searchRequested(entry.query, SearchTerm::SearchMode::Exclude); + }); } } |
