From 9fdac493c9a6e35f36dc45ff0e13583ddf88605e Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 14 Sep 2026 13:46:33 +0200 Subject: feat: a Not spam action Backlog item 201. A message in the Spam view had no way back out: spam is one-way and Restore is hidden outside the trash. not_spam moves each message to the folder its moved-from: origin names, falling back to the account's inbox (reported) for provider-caught mail with no origin. The action is labelled "Not junk" on the free Alt+J: every letter of "Not spam" is taken in the Message menu, and Alt+P (Re&ply) and Alt+S (Mark &spam, frozen) are unavailable. restoreResolvedMessages() and the undelete_thread branch are parameterised with the cleared tag and undo description rather than copied, so Delete and Not spam cannot drift. --- src/keymap.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/keymap.cpp') diff --git a/src/keymap.cpp b/src/keymap.cpp index d62ba3e..97399e2 100644 --- a/src/keymap.cpp +++ b/src/keymap.cpp @@ -54,6 +54,11 @@ QStringList KeyMap::knownActions() // is menu-reachable rather than broken. QStringLiteral("empty_spam"), QStringLiteral("spam"), + // Item 201. Mark spam's inverse: a message in the spam folder had no + // way back. No default binding, matching empty_spam: moving mail out of + // a folder is reached from a menu, and since item 132 an unbound action + // is menu-reachable rather than broken. + QStringLiteral("not_spam"), QStringLiteral("toggle_unread"), QStringLiteral("mark_all_read"), QStringLiteral("edit_tags"), -- cgit v1.2.3