diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-25 18:11:25 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-25 18:11:25 +0200 |
| commit | 3955ff80e3b0d558cd854c4517d1835514010b90 (patch) | |
| tree | 0e3fd9186f7db039646729f3139ef15b3cb43468 /translations | |
| parent | 39d0371f284a5fb20eb132a60c795d6814b41b0a (diff) | |
| download | qtmaildir-3955ff80e3b0d558cd854c4517d1835514010b90.tar.gz qtmaildir-3955ff80e3b0d558cd854c4517d1835514010b90.zip | |
feat: say which way the unread action will go, and hide it when it cannot
Item 112, and 99 and 147 with it: the user's note is one design across
all three. A union is not a state. ThreadSummary::tags is notmuch's
union over the conversation, so a thread holding even one unread message
answered "unread" and the thread toggle always chose "mark read". There
was no input that reached "mark thread unread" on a mixed thread, which
is the thread a user wants it for.
The thread toggle becomes two absolute actions, mark_thread_read and
mark_thread_unread. Neither takes a default chord, at the user's choice:
Ctrl+Alt+U meant whichever direction the union picked, and since item
132 a shortcut is a chosen subset rather than a requirement. It is now
unbound.
The message-scoped toggle stays a toggle, because one message has a real
two-valued state, and its label now names the direction it will go. On a
selection with no single state the entry is hidden rather than labelled
wrongly, chosen over disabling it; the thread submenu is the route then,
and its entries are absolute.
selectionTagPresence() is the three-valued predicate that needed to
exist. everySelectedRowHasTag() delegates to it and keeps its two-valued
answer, which is all a direction needs; a label needs the third value.
The refresh is keyed on the model's dataChanged as well as on the
selection, so a write moves the label without reselecting and none of
the six optimistic-update call sites has to remember.
Three mutations fail: restoring the union predicate reports the user's
original symptom, showing the action on a mixed selection, and dropping
the dataChanged refresh. The suite is 37 of 38, the failure being item
136 on an unrelated path. Four new strings translated, lrelease reports
0 unfinished.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HFuRPtzFrSxCQjFk6tq7gD
Diffstat (limited to 'translations')
| -rw-r--r-- | translations/qtmaildir_it_IT.ts | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/translations/qtmaildir_it_IT.ts b/translations/qtmaildir_it_IT.ts index 913d151..a976f4e 100644 --- a/translations/qtmaildir_it_IT.ts +++ b/translations/qtmaildir_it_IT.ts @@ -499,6 +499,14 @@ Il messaggio È stato inviato. Non inviarlo di nuovo.</translation> <translation>Aggiunge o rimuove l'etichetta deleted</translation> </message> <message> + <source>Mark thread &read</source> + <translation>Segna conversazione come &letta</translation> + </message> + <message> + <source>Remove the unread tag from every message of the selected threads</source> + <translation>Rimuove il tag unread da ogni messaggio delle conversazioni selezionate</translation> + </message> + <message> <source>Re&ply</source> <translation>Ris&pondi</translation> </message> @@ -752,14 +760,18 @@ Il messaggio È stato inviato. Non inviarlo di nuovo.</translation> <translation>Segna conversazione come spam</translation> </message> <message> - <source>Toggle the unread tag on whole threads</source> - <translation>Inverte l'etichetta non letto su intere conversazioni</translation> - </message> - <message> <source>Mark thread read</source> <translation>Segna conversazione come letta</translation> </message> <message> + <source>Mark thread &unread</source> + <translation>Segna conversazione come &non letta</translation> + </message> + <message> + <source>Add the unread tag to every message of the selected threads</source> + <translation>Aggiunge il tag unread a ogni messaggio delle conversazioni selezionate</translation> + </message> + <message> <source>Mark thread unread</source> <translation>Segna conversazione come non letta</translation> </message> @@ -1164,6 +1176,22 @@ Il messaggio È stato inviato. Non inviarlo di nuovo.</translation> <numerusform>%1: %n conversazioni</numerusform> </translation> </message> + <message> + <source>Mark as &read</source> + <translation>Segna come &letto</translation> + </message> + <message> + <source>Remove the unread tag from the selection</source> + <translation>Rimuove il tag unread dalla selezione</translation> + </message> + <message> + <source>Mark as &unread</source> + <translation>Segna come &non letto</translation> + </message> + <message> + <source>Add the unread tag to the selection</source> + <translation>Aggiunge il tag unread alla selezione</translation> + </message> <message numerus="yes"> <source>1 thread selected (%n message(s))</source> <translation> |
