summaryrefslogtreecommitdiffstats
path: root/src/keymap.cpp
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-14 13:46:33 +0200
committerDanilo M. <danix@danix.xyz>2026-09-14 13:46:33 +0200
commit9fdac493c9a6e35f36dc45ff0e13583ddf88605e (patch)
treeff561fba18bd543306b3166c8eb3591cb1d220e3 /src/keymap.cpp
parentd714483b6027425923340d1bcfa0263b8e7ac0bc (diff)
downloadqtmaildir-9fdac493c9a6e35f36dc45ff0e13583ddf88605e.tar.gz
qtmaildir-9fdac493c9a6e35f36dc45ff0e13583ddf88605e.zip
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.
Diffstat (limited to 'src/keymap.cpp')
-rw-r--r--src/keymap.cpp5
1 files changed, 5 insertions, 0 deletions
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"),