summaryrefslogtreecommitdiffstats
path: root/ui/src/components/mail/listing/plain.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/components/mail/listing/plain.rs')
-rw-r--r--ui/src/components/mail/listing/plain.rs38
1 files changed, 16 insertions, 22 deletions
diff --git a/ui/src/components/mail/listing/plain.rs b/ui/src/components/mail/listing/plain.rs
index b1245594..83c9eeaf 100644
--- a/ui/src/components/mail/listing/plain.rs
+++ b/ui/src/components/mail/listing/plain.rs
@@ -131,9 +131,8 @@ impl PlainListing {
return;
}
}
- let mailbox = &context.accounts[self.cursor_pos.0][self.cursor_pos.1]
- .as_ref()
- .unwrap();
+ let account = &context.accounts[self.cursor_pos.0];
+ let mailbox = &account[self.cursor_pos.1].as_ref().unwrap();
self.length = mailbox.len();
self.content = CellBuffer::new(MAX_COLS, self.length + 1, Cell::with_char(' '));
@@ -158,31 +157,31 @@ impl PlainListing {
break;
}
/* Write an entire line for each envelope entry. */
- self.local_collection = mailbox.collection.keys().cloned().collect();
+ self.local_collection = account.collection.keys().cloned().collect();
let sort = self.sort;
self.local_collection.sort_by(|a, b| match sort {
(SortField::Date, SortOrder::Desc) => {
- let ma = &mailbox.collection[a];
- let mb = &mailbox.collection[b];
+ let ma = &account.get_env(a);
+ let mb = &account.get_env(b);
mb.date().cmp(&ma.date())
}
(SortField::Date, SortOrder::Asc) => {
- let ma = &mailbox.collection[a];
- let mb = &mailbox.collection[b];
+ let ma = &account.get_env(a);
+ let mb = &account.get_env(b);
ma.date().cmp(&mb.date())
}
(SortField::Subject, SortOrder::Desc) => {
- let ma = &mailbox.collection[a];
- let mb = &mailbox.collection[b];
+ let ma = &account.get_env(a);
+ let mb = &account.get_env(b);
ma.subject().cmp(&mb.subject())
}
(SortField::Subject, SortOrder::Asc) => {
- let ma = &mailbox.collection[a];
- let mb = &mailbox.collection[b];
+ let ma = &account.get_env(a);
+ let mb = &account.get_env(b);
mb.subject().cmp(&ma.subject())
}
});
- let envelope: &Envelope = &mailbox.collection[&self.local_collection[idx]];
+ let envelope: &Envelope = &account.get_env(&self.local_collection[idx]);
let fg_color = if !envelope.is_seen() {
Color::Byte(0)
@@ -230,10 +229,8 @@ impl PlainListing {
}
fn highlight_line(&self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
- let mailbox = &context.accounts[self.cursor_pos.0][self.cursor_pos.1]
- .as_ref()
- .unwrap();
- let envelope: &Envelope = &mailbox.collection[&self.local_collection[idx]];
+ let account = &context.accounts[self.cursor_pos.0];
+ let envelope: &Envelope = &account.get_env(&self.local_collection[idx]);
let fg_color = if !envelope.is_seen() {
Color::Byte(0)
@@ -367,11 +364,8 @@ impl Component for PlainListing {
false
} else {
let account = &mut context.accounts[self.cursor_pos.0];
- let mailbox = &mut account[self.cursor_pos.1].as_mut().unwrap();
- let envelope: &mut Envelope = &mut mailbox
- .collection
- .entry(self.local_collection[idx])
- .or_default();
+ let envelope: &mut Envelope =
+ &mut account.get_env_mut(&self.local_collection[idx]);
!envelope.is_seen()
}
};