diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-14 14:11:18 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-14 14:11:18 +0200 |
| commit | c1c196ebeef9a17defe8a3070e8f10d548ffdf40 (patch) | |
| tree | b02cf24e29b1a0aef13c4dfd9fd0b2f0cc1bd136 /src | |
| parent | 40328fb336ebcec716a39d1f78cdee95b89bc75b (diff) | |
| download | qtmaildir-c1c196ebeef9a17defe8a3070e8f10d548ffdf40.tar.gz qtmaildir-c1c196ebeef9a17defe8a3070e8f10d548ffdf40.zip | |
fix: keep the message bar populated on a spam reply
The spam branch of populateMessageBar() was keyed on the path predicate
alone, but its only action is hidden on a reply, so a reply inside an expanded
spam conversation lost Reply, Forward and Star. Skip the branch when the
reply guard is set, so the ordinary branch populates instead.
Extend notSpamIsOfferedInTheSpamView with the message-bar assertions the
QAction-only check missed, waiting for the reply row to load first, and mark
Task 9's step checkboxes done in the plan.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 68cdde7..2443ead 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2467,11 +2467,18 @@ void MainWindow::populateMessageBar() // need no colour to tell them from each other, only from this one. tinted = { m_actions.value(QStringLiteral("restore")) }; } else if (everySelectedRowIsInASpamFolder() + && !m_replySelectionHidesDelete && !m_threadView->selectionModel()->selectedRows().isEmpty()) { // Item 201. Mail in a spam folder affords one thing the ordinary bar // cannot offer: a way back out. Ordered after the trash branch and // before the draft one, because a draft thrown into the spam folder is // no more useful to edit than one thrown into the trash. + // + // NOT taken on a reply row. The only action here is not_spam and + // refreshTrashActions() hides it on a reply, so taking the branch left + // the bar EMPTY: a reply inside an expanded spam conversation lost + // Reply, Forward and Star. The trash branch needs no such guard because + // purge and empty_trash stay visible on a reply. messageActions = { m_actions.value(QStringLiteral("not_spam")) }; } else if (currentMessageIsADraft()) { messageActions = { m_actions.value(QStringLiteral("edit_draft")) }; |
