diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-15 15:44:38 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-15 15:44:38 +0200 |
| commit | c3dd54e390d236b7d68bae456ef39c5fa7fb49d5 (patch) | |
| tree | 433c2c15a30a1cb2038f20ec78b53b83d429f0c9 /src/tagdialog.cpp | |
| parent | 19f0ea0000f8e61a4077d06609c5c7c329edf8bb (diff) | |
| download | qtmaildir-c3dd54e390d236b7d68bae456ef39c5fa7fb49d5.tar.gz qtmaildir-c3dd54e390d236b7d68bae456ef39c5fa7fb49d5.zip | |
fix(ui): load a thread that was already displayed when the query ran
Running a query blanks the message pane but left m_currentThreadId,
m_currentMessageId and m_currentMessageThreadId naming the thread that had
been showing. Both selection handlers compare a newly selected row against
those to decide whether it is already on display, so a result containing that
same thread was recognised as "already showing" and onThreadSelected() was
never called. The card painted as selected, the status bar reported one
thread, and the pane stayed on the placeholder.
This is why it looked like an `id:` query defect. The id is copied out of the
details dialog of the message being read, so that thread is current at the
moment the query replaces the view. Any query returning a different thread
hides the fault entirely.
Filed as the unverified half of item 66 and assumed to be the same
empty-MessageIdRole failure. It is not: 66's fix was correct and this
reproduced against it, so it is recorded as item 96. Four hypotheses were
eliminated by measurement first: the row does carry the message id, the
account-scoped query does return it, MimeParser parses the reported message
(ok, 40701 bytes of HTML), and both real ids resolve bare and quoted.
The regression test's first query must open the SAME thread the second one
returns; with two different threads it passes against the defect, which is how
the first version of it was green. Reverting the fix fails it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/tagdialog.cpp')
0 files changed, 0 insertions, 0 deletions
