diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-29 18:18:33 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-29 18:18:33 +0200 |
| commit | bed9d291370b2b198b2d146c7081066b6dd70641 (patch) | |
| tree | 23f1aa21358456c7df7b373fefed23538926b85b /README.md | |
| parent | 04e7db97ae421212614a6ed92807485f743966d3 (diff) | |
| download | qtmaildir-bed9d291370b2b198b2d146c7081066b6dd70641.tar.gz qtmaildir-bed9d291370b2b198b2d146c7081066b6dd70641.zip | |
fix: find a launch's thread in any account, and name a miss
recoverStaleThread() runs thread:<id> in the account dropdown's scope, so a
--thread or --message for a conversation in another account than the one
the window was left on came back with no rows, and the list went blank with
nothing said.
A thread or message selector now switches the dropdown to All accounts
first, unless the launch named an account with --account, in which case
that scope is kept. For a message the switch waits until the id has
resolved, so a message that does not exist leaves the dropdown alone.
When the selector's own thread:<id> query returns no rows, the miss is
named in the status bar, reusing the existing "No thread matched" and "No
message matched" strings, and the view that was on screen when the launch
arrived comes back: the dropdown, the bar's text and the list, re-run in
the scope it was built in. The notice waits for that query to land, since
the query writes its row count to the bar and would cover it. A refused
thread id and an unresolved message restore the dropdown the same way, and
re-run nothing, since the list never changed.
The judgement is keyed to a flag the selector paths set after the query
and runQuery() clears, so the stale-thread notice and double-click, which
share recoverStaleThread(), behave as before.
README and CHANGELOG describe the selectors as they now behave: --account
alone opens its startup view, the other two look in every account unless
narrowed, brackets are accepted, and a miss keeps the view the user had.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 20 |
1 files changed, 13 insertions, 7 deletions
@@ -54,10 +54,15 @@ qtmaildir [options] --message <id> Open this message, inside its thread ``` -The three selectors combine: `--account work --message '<abc@example.org>'` -opens that message in the work account's view. `--thread` takes a notmuch -thread id (hex digits only); anything else is reported as a miss in the status -bar and never reaches notmuch. Qt's own options, such as `-platform` and +`--account` on its own opens the startup view (`startup_query`) in that +account. `--thread` and `--message` open the whole conversation with that +message selected, and look for it in every account, switching the account +selector to All accounts. The three selectors combine: `--account work +--message '<abc@example.org>'` looks for that message in the work account only, +and a message that lives elsewhere is a miss. `--message` takes a Message-ID +with or without its angle brackets. `--thread` takes a notmuch thread id (hex +digits only); anything else is reported as a miss in the status bar and never +reaches notmuch. Qt's own options, such as `-platform` and `-style`, are accepted alongside them. An unknown option or a missing value prints `qtmaildir: <error>` on stderr and exits with status 2. @@ -73,9 +78,10 @@ Under a Wayland compositor, raising a window is a request rather than a command: the compositor may honour it, or apply its own focus policy. The selectors are applied either way. -A selector that matches nothing, a stale thread id or an account key that is -not configured, leaves the window on its normal startup view and says what -missed in the status bar. It is never a reason to refuse to start. +A selector that matches nothing, a stale thread or message id, one outside +the account given with `--account`, or an account key that is not configured, +leaves the window on the view it was showing and says what missed in the status +bar. It is never a reason to refuse to start. ## Building |
