summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2019-04-03 19:49:48 +0300
committerManos Pitsidianakis <el13635@mail.ntua.gr>2019-06-10 19:40:42 +0300
commitdb6e83b7558e68ef09515da7fe0b2560714f745a (patch)
treec8dc1cb9e90cdb29559ba306014e37de8c0a0e7a
parentaa95c89ba8771e68f93e2852ec3ae3846281ff5b (diff)
ui: highlight unseen thread entries in ThreadView
closes #78
-rw-r--r--ui/src/components/mail/view/thread.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/ui/src/components/mail/view/thread.rs b/ui/src/components/mail/view/thread.rs
index 577ea1b5..4c9e4bb9 100644
--- a/ui/src/components/mail/view/thread.rs
+++ b/ui/src/components/mail/view/thread.rs
@@ -28,6 +28,7 @@ struct ThreadEntry {
/// (indentation, thread_node index, line number in listing)
indentation: usize,
msg_idx: EnvelopeHash,
+ seen: bool,
}
#[derive(Debug, Default)]
@@ -85,7 +86,8 @@ impl ThreadView {
self.entries.clear();
for (line, (ind, idx)) in thread_iter.enumerate() {
let entry = if let Some(msg_idx) = threads.thread_nodes()[idx].message() {
- self.make_entry((ind, idx, line), msg_idx)
+ let seen: bool = mailbox.collection[&msg_idx].is_seen();
+ self.make_entry((ind, idx, line), msg_idx, seen)
} else {
continue;
};
@@ -161,8 +163,8 @@ impl ThreadView {
write_string_to_grid(
&strings[y],
&mut content,
- Color::Default,
- Color::Default,
+ if e.seen { Color::Default } else { Color::Byte(0) },
+ if e.seen { Color::Default } else { Color::Byte(251) },
((e.index.0 * 4 + 1, 2 * y), (width - 1, height - 1)),
true,
);
@@ -203,8 +205,8 @@ impl ThreadView {
write_string_to_grid(
&strings[y],
&mut content,
- Color::Default,
- Color::Default,
+ if e.seen { Color::Default } else { Color::Byte(0) },
+ if e.seen { Color::Default } else { Color::Byte(251) },
((e.index.0 * 4 + 1, 2 * y), (width - 1, height - 1)),
true,
);
@@ -231,12 +233,13 @@ impl ThreadView {
self.content = content;
}
- fn make_entry(&mut self, i: (usize, usize, usize), msg_idx: EnvelopeHash) -> ThreadEntry {
+ fn make_entry(&mut self, i: (usize, usize, usize), msg_idx: EnvelopeHash, seen: bool) -> ThreadEntry {
let (ind, _, _) = i;
ThreadEntry {
index: i,
indentation: ind,
msg_idx,
+ seen,
}
}