summaryrefslogtreecommitdiffstats
path: root/src/threaddigest.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/threaddigest.h')
-rw-r--r--src/threaddigest.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/threaddigest.h b/src/threaddigest.h
index e78a2ac..8c68e16 100644
--- a/src/threaddigest.h
+++ b/src/threaddigest.h
@@ -9,6 +9,7 @@
#include <QMetaType>
#include <QPair>
#include <QString>
+#include <QStringList>
#include <QVector>
#include "types.h"
@@ -41,6 +42,30 @@ struct ThreadDigest
int totalCount = 0;
+ /// Every message's file, RELATIVE to the database path, in the walk's own
+ /// order.
+ ///
+ /// Item 178. Delete and Restore ask whether a row is in the trash, and a
+ /// CONVERSATION is in the trash only when all of its messages are.
+ /// ThreadSummary carries one path, which was the right answer while a
+ /// thread row meant its first message and is not one now, so a partly
+ /// trashed conversation answered on whichever message the query returned
+ /// first: Delete hidden on a thread with mail outside the trash, Restore
+ /// offered on one that mostly is not.
+ ///
+ /// Relative and not absolute, for the same reason
+ /// ThreadSummary::firstMessagePath is: the UI knows an account only by its
+ /// `maildir`, itself a database-relative prefix, so an absolute path
+ /// matches no account and silently resolves every row to none.
+ ///
+ /// Free, like everything else here: the digest already walks every message
+ /// for the sender counts, and a filename is served from the INDEX rather
+ /// than the message file. A message with several files contributes only
+ /// its first, which is what notmuch_message_get_filename returns; the
+ /// question is which FOLDER a message lives in, and a caller testing
+ /// "every path is under trash" is answered correctly by any one of them.
+ QStringList messagePaths;
+
/// Always kBuckets entries. A fixed count is what keeps the sparkline's
/// geometry testable; a thread spanning five days and one spanning two
/// years cannot share a bucket size, so the span is what varies and the