diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-14 14:02:21 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-14 14:02:21 +0200 |
| commit | 40328fb336ebcec716a39d1f78cdee95b89bc75b (patch) | |
| tree | 5564c0b731a8f0af4cf56791ffac04062c6f03dd /src | |
| parent | 9fdac493c9a6e35f36dc45ff0e13583ddf88605e (diff) | |
| download | qtmaildir-40328fb336ebcec716a39d1f78cdee95b89bc75b.tar.gz qtmaildir-40328fb336ebcec716a39d1f78cdee95b89bc75b.zip | |
fix: the Not spam review findings
Close the two Important test gaps and fold in the minor notes.
notSpamIsAbsentOnAReplyRow passed for the wrong reason: the reply node had
no filePath and the selected child was the first message, so the predicate
answered false on the empty path and hid the action with or without the reply
guard. Give the reply a real spam path and select the actual reply child;
mutation-checked that removing the guard now fails the test.
Add notSpamThreadMovesEveryMessageHome, the thread-scoped coverage
notSpamThreads()/m_pendingThreadScope/wholeThreadIds had none of, and assert
the folded thread-scoped trash Restore re-adds the inbox tag.
Rename the label Not junk -> Not spam (no free mnemonic in the Message menu)
to match the rest of the UI, with the Italian translation updated, and add a
changelog line for the thread-scoped Restore inbox-tag fix.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 383e257..68cdde7 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1813,11 +1813,13 @@ void MainWindow::registerActions() // back to the folder its `moved-from:` tag names, falling back to the // account's inbox for mail a provider caught, which carries no origin. // - // The mnemonic is on "&junk" rather than "spam": Alt+P is already Re&ply - // and Alt+S is a frozen collision, and no letter of "Not spam" is free in - // this menu. `junk` is the theme's own name for the folder and what its - // icon (`mail-mark-notjunk`) draws, so the wording stays honest. - addAction(QStringLiteral("not_spam"), tr("Not &junk"), + // No mnemonic, deliberately: every letter of "Not spam" is already used in + // this menu (N, o, t, s, p, a, m), Alt+P and Alt+S are taken by Re&ply and + // the frozen Mark &spam collision, and no free letter spells "spam". The + // mnemonic test skips an entry that carries none, and the terminology + // matches the rest of the UI ("spam folder", the `spam` key) rather than + // inventing "junk" for a menu that says spam everywhere else. + addAction(QStringLiteral("not_spam"), tr("Not spam"), tr("Move the selected messages out of the spam folder"), [this]() { notSpamSelected(); }); @@ -6773,7 +6775,7 @@ void MainWindow::onThreadMessagesResolved(const QStringList &messageIds, if (requestTag == QStringLiteral("not_spam_thread")) { restoreResolvedMessages(messageIds, paths, tags, - QStringLiteral("spam"), tr("Not junk"), + QStringLiteral("spam"), tr("Not spam"), true, false, threadScope); return; } @@ -6844,7 +6846,7 @@ void MainWindow::notSpamMessages(const QStringList &messageIds, const QStringList &tags) { restoreResolvedMessages(messageIds, paths, tags, QStringLiteral("spam"), - tr("Not junk"), true, false); + tr("Not spam"), true, false); } void MainWindow::notSpamThreads(const QStringList &threadIds) |
