melib/thread: add attachments field to Thread
parent
5e68d600b9
commit
350fafb515
|
@ -139,17 +139,20 @@ macro_rules! make {
|
|||
ref mut len,
|
||||
ref mut unseen,
|
||||
ref mut snoozed,
|
||||
ref mut attachments,
|
||||
..
|
||||
}, ThreadGroup::Root(Thread {
|
||||
date: old_date,
|
||||
len: old_len,
|
||||
unseen: old_unseen,
|
||||
snoozed: old_snoozed,
|
||||
attachments: old_attachments,
|
||||
..
|
||||
})) => {
|
||||
*date = std::cmp::max(old_date, *date);
|
||||
*len += old_len;
|
||||
*unseen |= old_unseen;
|
||||
*unseen += old_unseen;
|
||||
*attachments += old_attachments;
|
||||
*snoozed |= old_snoozed;
|
||||
}
|
||||
_ => unreachable!(),
|
||||
|
@ -273,6 +276,7 @@ pub struct Thread {
|
|||
date: UnixTimestamp,
|
||||
len: usize,
|
||||
unseen: usize,
|
||||
attachments: usize,
|
||||
|
||||
snoozed: bool,
|
||||
}
|
||||
|
@ -321,6 +325,10 @@ impl Thread {
|
|||
property!(snoozed: bool);
|
||||
property!(date: UnixTimestamp);
|
||||
|
||||
pub fn has_attachments(&self) -> bool {
|
||||
self.attachments > 0
|
||||
}
|
||||
|
||||
pub fn set_snoozed(&mut self, val: bool) {
|
||||
self.snoozed = val;
|
||||
}
|
||||
|
@ -765,6 +773,11 @@ impl Threads {
|
|||
} else {
|
||||
0
|
||||
},
|
||||
attachments: if envelopes_lck[&env_hash].has_attachments() {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
},
|
||||
snoozed: false,
|
||||
}),
|
||||
);
|
||||
|
@ -803,6 +816,7 @@ impl Threads {
|
|||
date: envelopes_lck[&env_hash].date(),
|
||||
len: 0,
|
||||
unseen: 0,
|
||||
attachments: 0,
|
||||
snoozed: false,
|
||||
}),
|
||||
);
|
||||
|
@ -846,6 +860,7 @@ impl Threads {
|
|||
date: envelopes_lck[&env_hash].date(),
|
||||
len: 0,
|
||||
unseen: 0,
|
||||
attachments: 0,
|
||||
snoozed: false,
|
||||
}),
|
||||
);
|
||||
|
|
|
@ -598,7 +598,7 @@ impl CompactListing {
|
|||
subject: SubjectString(format!("{} ({})", subject, thread.len(),)),
|
||||
flag: FlagString(format!(
|
||||
"{}{}",
|
||||
if e.has_attachments() { "π" } else { "" },
|
||||
if thread.has_attachments() { "π" } else { "" },
|
||||
if thread.snoozed() { "π€" } else { "" }
|
||||
)),
|
||||
from: FromString(address_list!((e.from()) as comma_sep_list)),
|
||||
|
@ -610,7 +610,7 @@ impl CompactListing {
|
|||
subject: SubjectString(subject),
|
||||
flag: FlagString(format!(
|
||||
"{}{}",
|
||||
if e.has_attachments() { "π" } else { "" },
|
||||
if thread.has_attachments() { "π" } else { "" },
|
||||
if thread.snoozed() { "π€" } else { "" }
|
||||
)),
|
||||
from: FromString(address_list!((e.from()) as comma_sep_list)),
|
||||
|
@ -922,13 +922,7 @@ impl CompactListing {
|
|||
self.data_columns.columns[4][(x, idx)].set_ch(' ');
|
||||
self.data_columns.columns[4][(x, idx)].set_bg(bg_color);
|
||||
}
|
||||
match (
|
||||
thread.snoozed(),
|
||||
context.accounts[self.cursor_pos.0]
|
||||
.collection
|
||||
.get_env(root_env_hash)
|
||||
.has_attachments(),
|
||||
) {
|
||||
match (thread.snoozed(), thread.has_attachments()) {
|
||||
(true, true) => {
|
||||
self.data_columns.columns[3][(0, idx)].set_fg(Color::Byte(103));
|
||||
self.data_columns.columns[3][(2, idx)].set_fg(Color::Red);
|
||||
|
@ -994,7 +988,6 @@ impl CompactListing {
|
|||
return;
|
||||
}
|
||||
let envelope: EnvelopeRef = account.collection.get_env(env_hash);
|
||||
let has_attachments = envelope.has_attachments();
|
||||
let fg_color = if thread.unseen() > 0 {
|
||||
Color::Byte(0)
|
||||
} else {
|
||||
|
@ -1119,7 +1112,7 @@ impl CompactListing {
|
|||
columns[4][c].set_ch(' ');
|
||||
columns[4][c].set_bg(bg_color);
|
||||
}
|
||||
match (thread.snoozed(), has_attachments) {
|
||||
match (thread.snoozed(), thread.has_attachments()) {
|
||||
(true, true) => {
|
||||
columns[3][(0, idx)].set_fg(Color::Byte(103));
|
||||
columns[3][(2, idx)].set_fg(Color::Red);
|
||||
|
|
|
@ -571,7 +571,7 @@ impl ConversationsListing {
|
|||
subject: SubjectString(format!("{} ({})", subject, thread.len(),)),
|
||||
flag: FlagString(format!(
|
||||
"{}{}",
|
||||
if e.has_attachments() { "π" } else { "" },
|
||||
if thread.has_attachments() { "π" } else { "" },
|
||||
if thread.snoozed() { "π€" } else { "" }
|
||||
)),
|
||||
from: FromString(address_list!((from) as comma_sep_list)),
|
||||
|
@ -583,7 +583,7 @@ impl ConversationsListing {
|
|||
subject: SubjectString(subject),
|
||||
flag: FlagString(format!(
|
||||
"{}{}",
|
||||
if e.has_attachments() { "π" } else { "" },
|
||||
if thread.has_attachments() { "π" } else { "" },
|
||||
if thread.snoozed() { "π€" } else { "" }
|
||||
)),
|
||||
from: FromString(address_list!((from) as comma_sep_list)),
|
||||
|
|
Loadingβ¦
Reference in New Issue