aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/plans/2026-08-14-search-from-message.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-14 17:14:33 +0200
committerDanilo M. <danix@danix.xyz>2026-08-14 17:14:33 +0200
commita79725e055699524ec57d09bd484f274ea4a961e (patch)
tree8ca944300b3f8e2650940154df73aa8b561bb3b8 /docs/superpowers/plans/2026-08-14-search-from-message.md
parente876e509b0770a243725b63ea55c9ccf3e41b1bf (diff)
parentbbf3c570215688c553fd70d8f372ae215725ca02 (diff)
downloadqtmaildir-a79725e055699524ec57d09bd484f274ea4a961e.tar.gz
qtmaildir-a79725e055699524ec57d09bd484f274ea4a961e.zip
Merge: searching from the message pane (item 85)
Five surfaces in the message pane offer a search built from what they show: the header's subject and date, its sender and recipients on a single-message thread, a tag chip, a body selection, and every header per message in the details dialog. Each offers Search for this, which replaces the query, and Add to search, which narrows it. The details dialog became labelled rows along the way, which the user wanted independently of this feature. Hand tested through every surface, including the case the parenthesising exists for: adding a sender to 'tag:inbox or tag:flagged' narrows it rather than widening it.
Diffstat (limited to 'docs/superpowers/plans/2026-08-14-search-from-message.md')
-rw-r--r--docs/superpowers/plans/2026-08-14-search-from-message.md12
1 files changed, 9 insertions, 3 deletions
diff --git a/docs/superpowers/plans/2026-08-14-search-from-message.md b/docs/superpowers/plans/2026-08-14-search-from-message.md
index 56cfbc6..824ccd4 100644
--- a/docs/superpowers/plans/2026-08-14-search-from-message.md
+++ b/docs/superpowers/plans/2026-08-14-search-from-message.md
@@ -462,12 +462,12 @@ void TestMimeParser::parsesADateWithATimezoneComment()
// silently: the attachment folder loses its prefix, and a date search
// offers nothing with no indication why.
const QDateTime withComment = MimeParser::parseDate(
- QStringLiteral("Thu, 14 Aug 2026 09:30:00 +0200 (CEST)"));
+ QStringLiteral("Fri, 14 Aug 2026 09:30:00 +0200 (CEST)"));
QVERIFY(withComment.isValid());
QCOMPARE(withComment.date(), QDate(2026, 8, 14));
const QDateTime plain = MimeParser::parseDate(
- QStringLiteral("Thu, 14 Aug 2026 09:30:00 +0200"));
+ QStringLiteral("Fri, 14 Aug 2026 09:30:00 +0200"));
QVERIFY(plain.isValid());
QCOMPARE(plain.date(), QDate(2026, 8, 14));
@@ -1316,7 +1316,7 @@ private:
item.message.from = QStringLiteral("Sender <sender@example.org>");
item.message.to = QStringLiteral("Recipient <recipient@example.org>");
item.message.cc = QStringLiteral("Copied <copied@example.org>");
- item.message.date = QStringLiteral("Thu, 14 Aug 2026 09:30:00 +0200");
+ item.message.date = QStringLiteral("Fri, 14 Aug 2026 09:30:00 +0200");
item.message.messageId = QStringLiteral("<abc123@example.org>");
return item;
}
@@ -1945,6 +1945,12 @@ to a rule already exists as save the query, then build a rule from it."
## Notes for the implementer
+**`Qt::RFC2822Date` also validates the weekday against the date.** Found in Task 2:
+`Thu, 14 Aug 2026` parses as INVALID because 2026-08-14 is a Friday, and the
+failure looks exactly like the timezone-comment bug this feature exists to avoid.
+Any `Date:` header written into a test fixture must carry the right weekday.
+Check with `date -d <yyyy-mm-dd> +%A` rather than guessing.
+
**Where this is likely to go wrong, in order of probability:**
1. **The tag strip's spacing constant.** Task 3 requires `paintEvent`, `relayout` and `chipRectAt` to agree. If the whole-suite run in Task 3 shows a message-pane test failing, the constants disagree; fix by making all three call `chipRectAt`.