summaryrefslogtreecommitdiffstats
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md16
1 files changed, 13 insertions, 3 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 7295ca5..1483a6d 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -40,13 +40,23 @@ Maildir. **No network protocol work at all** — fetching and sending are extern
```
UI thread Worker thread
MainWindow NotmuchWorker
- ├ QueryBar / SavedQueryBar └ owns the only notmuch_database_t*
- ├ ThreadListView ── ThreadListModel
- └ MessageView (HeaderWidget, QWebEngineView, AttachmentBar)
+ ├ query row: QComboBox, QLineEdit, └ owns the only notmuch_database_t*
+ │ saved-query QPushButtons
+ ├ QTableView ── ThreadListModel (SubjectDelegate)
+ └ MessageView (header QLabel, QWebEngineView, attachment bar, TagStrip)
Config (INI) KeyMap MailSync (QProcess) MimeParser (GMime)
+SyncMonitor (/proc/locks) TagColors QueryCompleter ThreadCidMap
```
+The query row and the message-pane header are **built inline in `MainWindow` and
+`MessageView`**, not as named widget classes. Earlier revisions of this diagram
+listed `QueryBar`, `SavedQueryBar`, `HeaderWidget` and `AttachmentBar`; none of
+those types have ever existed, and looking for them wastes a search. The widget
+classes that do exist are `MessageView`, `TagStrip`, `TagDialog` and
+`SubjectDelegate`; `TagChip` is a namespace of painting helpers, not a widget,
+and `ThreadCidMap` is a struct.
+
**No `notmuch_*` pointer ever crosses the thread boundary.** Data crosses as the plain
value structs in `src/types.h` (`ThreadSummary`, `MessageRef`, `TagChange`), over queued
signals in both directions. `notmuchworker.cpp` is the only file that includes `notmuch.h`