summaryrefslogtreecommitdiffstats
path: root/ui/src/components/mail/listing
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/components/mail/listing')
-rw-r--r--ui/src/components/mail/listing/compact.rs69
-rw-r--r--ui/src/components/mail/listing/conversations.rs71
2 files changed, 59 insertions, 81 deletions
diff --git a/ui/src/components/mail/listing/compact.rs b/ui/src/components/mail/listing/compact.rs
index fd66d725..9fa5df4d 100644
--- a/ui/src/components/mail/listing/compact.rs
+++ b/ui/src/components/mail/listing/compact.rs
@@ -127,24 +127,24 @@ impl ListingTrait for CompactListing {
let thread = threads.thread_ref(thread_hash);
let fg_color = if thread.unseen() > 0 {
- self.color_cache.unseen_fg
+ self.color_cache.unseen.fg
} else if self.cursor_pos.2 == idx {
- self.color_cache.highlighted_fg
+ self.color_cache.highlighted.fg
} else if idx % 2 == 0 {
- self.color_cache.even_fg
+ self.color_cache.even.fg
} else {
- self.color_cache.odd_fg
+ self.color_cache.odd.fg
};
let bg_color = if self.cursor_pos.2 == idx {
- self.color_cache.highlighted_bg
+ self.color_cache.highlighted.bg
} else if self.selection[&thread_hash] {
- self.color_cache.selected_bg
+ self.color_cache.selected.bg
} else if thread.unseen() > 0 {
- self.color_cache.unseen_bg
+ self.color_cache.unseen.bg
} else if idx % 2 == 0 {
- self.color_cache.even_bg
+ self.color_cache.even.bg
} else {
- self.color_cache.odd_bg
+ self.color_cache.odd.bg
};
let (upper_left, bottom_right) = area;
@@ -348,7 +348,7 @@ impl ListingTrait for CompactListing {
let c = &self.data_columns.columns[0][(0, r + top_idx)];
if self.selection[&thread_hash] {
- (c.fg(), self.color_cache.selected_bg)
+ (c.fg(), self.color_cache.selected.bg)
} else {
(c.fg(), c.bg())
}
@@ -632,20 +632,13 @@ impl CompactListing {
};
self.color_cache = ColorCache {
- unseen_fg: crate::conf::color(context, "mail.listing.compact.unseen_fg"),
- unseen_bg: crate::conf::color(context, "mail.listing.compact.unseen_bg"),
- highlighted_fg: crate::conf::color(context, "mail.listing.compact.highlighted_fg"),
- highlighted_bg: crate::conf::color(context, "mail.listing.compact.highlighted_bg"),
- even_fg: crate::conf::color(context, "mail.listing.compact.even_fg"),
- even_bg: crate::conf::color(context, "mail.listing.compact.even_bg"),
- odd_fg: crate::conf::color(context, "mail.listing.compact.odd_fg"),
- odd_bg: crate::conf::color(context, "mail.listing.compact.odd_bg"),
- selected_bg: crate::conf::color(context, "mail.listing.compact.selected_bg"),
- attachment_flag_fg: crate::conf::color(context, "mail.listing.attachment_flag_fg"),
- thread_snooze_flag_fg: crate::conf::color(
- context,
- "mail.listing.thread_snooze_flag_fg",
- ),
+ unseen: crate::conf::value(context, "mail.listing.compact.unseen"),
+ highlighted: crate::conf::value(context, "mail.listing.compact.highlighted"),
+ even: crate::conf::value(context, "mail.listing.compact.even"),
+ odd: crate::conf::value(context, "mail.listing.compact.odd"),
+ selected: crate::conf::value(context, "mail.listing.compact.selected"),
+ attachment_flag: crate::conf::value(context, "mail.listing.attachment_flag"),
+ thread_snooze_flag: crate::conf::value(context, "mail.listing.thread_snooze_flag"),
..self.color_cache
};
@@ -821,11 +814,11 @@ impl CompactListing {
}
let thread = threads.thread_ref(thread);
let (fg_color, bg_color) = if thread.unseen() > 0 {
- (self.color_cache.unseen_fg, self.color_cache.unseen_bg)
+ (self.color_cache.unseen.fg, self.color_cache.unseen.bg)
} else if idx % 2 == 0 {
- (self.color_cache.even_fg, self.color_cache.even_bg)
+ (self.color_cache.even.fg, self.color_cache.even.bg)
} else {
- (self.color_cache.odd_fg, self.color_cache.odd_bg)
+ (self.color_cache.odd.fg, self.color_cache.odd.bg)
};
let (x, _) = write_string_to_grid(
&idx.to_string(),
@@ -917,17 +910,17 @@ impl CompactListing {
match (thread.snoozed(), thread.has_attachments()) {
(true, true) => {
self.data_columns.columns[3][(0, idx)]
- .set_fg(self.color_cache.attachment_flag_fg);
+ .set_fg(self.color_cache.attachment_flag.fg);
self.data_columns.columns[3][(2, idx)]
- .set_fg(self.color_cache.thread_snooze_flag_fg);
+ .set_fg(self.color_cache.thread_snooze_flag.fg);
}
(true, false) => {
self.data_columns.columns[3][(0, idx)]
- .set_fg(self.color_cache.thread_snooze_flag_fg);
+ .set_fg(self.color_cache.thread_snooze_flag.fg);
}
(false, true) => {
self.data_columns.columns[3][(0, idx)]
- .set_fg(self.color_cache.attachment_flag_fg);
+ .set_fg(self.color_cache.attachment_flag.fg);
}
(false, false) => {}
}
@@ -982,11 +975,11 @@ impl CompactListing {
}
let idx = self.order[&thread_hash];
let (fg_color, bg_color) = if thread.unseen() > 0 {
- (self.color_cache.unseen_fg, self.color_cache.unseen_bg)
+ (self.color_cache.unseen.fg, self.color_cache.unseen.bg)
} else if idx % 2 == 0 {
- (self.color_cache.even_fg, self.color_cache.even_bg)
+ (self.color_cache.even.fg, self.color_cache.even.bg)
} else {
- (self.color_cache.odd_fg, self.color_cache.odd_bg)
+ (self.color_cache.odd.fg, self.color_cache.odd.bg)
};
let envelope: EnvelopeRef = account.collection.get_env(env_hash);
let strings = self.make_entry_string(&envelope, context, threads, thread_hash);
@@ -1092,14 +1085,14 @@ impl CompactListing {
}
match (thread.snoozed(), thread.has_attachments()) {
(true, true) => {
- columns[3][(0, idx)].set_fg(self.color_cache.attachment_flag_fg);
- columns[3][(2, idx)].set_fg(self.color_cache.thread_snooze_flag_fg);
+ columns[3][(0, idx)].set_fg(self.color_cache.attachment_flag.fg);
+ columns[3][(2, idx)].set_fg(self.color_cache.thread_snooze_flag.fg);
}
(true, false) => {
- columns[3][(0, idx)].set_fg(self.color_cache.thread_snooze_flag_fg);
+ columns[3][(0, idx)].set_fg(self.color_cache.thread_snooze_flag.fg);
}
(false, true) => {
- columns[3][(0, idx)].set_fg(self.color_cache.attachment_flag_fg);
+ columns[3][(0, idx)].set_fg(self.color_cache.attachment_flag.fg);
}
(false, false) => {}
}
diff --git a/ui/src/components/mail/listing/conversations.rs b/ui/src/components/mail/listing/conversations.rs
index 8c3ddb4b..9cf1bd24 100644
--- a/ui/src/components/mail/listing/conversations.rs
+++ b/ui/src/components/mail/listing/conversations.rs
@@ -106,18 +106,18 @@ impl ListingTrait for ConversationsListing {
let thread = threads.thread_ref(thread_hash);
let fg_color = if thread.unseen() > 0 {
- self.color_cache.unseen_fg
+ self.color_cache.unseen.fg
} else {
- self.color_cache.fg
+ self.color_cache.general.fg
};
let bg_color = if self.cursor_pos.2 == idx {
- self.color_cache.highlighted_bg
+ self.color_cache.highlighted.bg
} else if self.selection[&thread_hash] {
- self.color_cache.selected_bg
+ self.color_cache.selected.bg
} else if thread.unseen() > 0 {
- self.color_cache.unseen_bg
+ self.color_cache.unseen.bg
} else {
- self.color_cache.bg
+ self.color_cache.general.bg
};
copy_area(
@@ -127,7 +127,7 @@ impl ListingTrait for ConversationsListing {
((0, 3 * idx), pos_dec(self.content.size(), (1, 1))),
);
- let padding_fg = self.color_cache.padding;
+ let padding_fg = self.color_cache.padding.fg;
let (upper_left, bottom_right) = area;
let width = self.content.size().0;
@@ -292,7 +292,7 @@ impl ListingTrait for ConversationsListing {
/* fill any remaining columns, if our view is wider than self.content */
let width = self.content.size().0;
- let padding_fg = self.color_cache.padding;
+ let padding_fg = self.color_cache.padding.fg;
if width < width!(area) {
let y_offset = get_y(upper_left);
@@ -554,34 +554,19 @@ impl ConversationsListing {
};
self.color_cache = ColorCache {
- fg: crate::conf::color(context, "mail.listing.conversations.fg"),
- bg: crate::conf::color(context, "mail.listing.conversations.bg"),
- subject_fg: crate::conf::color(context, "mail.listing.conversations.subject_fg"),
- subject_bg: crate::conf::color(context, "mail.listing.conversations.subject_bg"),
- from_fg: crate::conf::color(context, "mail.listing.conversations.from_fg"),
- from_bg: crate::conf::color(context, "mail.listing.conversations.from_bg"),
- date_fg: crate::conf::color(context, "mail.listing.conversations.date_fg"),
- date_bg: crate::conf::color(context, "mail.listing.conversations.date_bg"),
- padding: crate::conf::color(context, "mail.listing.conversations.padding"),
- unseen_fg: crate::conf::color(context, "mail.listing.conversations.unseen_fg"),
- unseen_bg: crate::conf::color(context, "mail.listing.conversations.unseen_bg"),
- unseen_padding: crate::conf::color(
+ general: crate::conf::value(context, "mail.listing.conversations"),
+ subject: crate::conf::value(context, "mail.listing.conversations.subject"),
+ from: crate::conf::value(context, "mail.listing.conversations.from"),
+ date: crate::conf::value(context, "mail.listing.conversations.date"),
+ padding: crate::conf::value(context, "mail.listing.conversations.padding"),
+ unseen: crate::conf::value(context, "mail.listing.conversations.unseen"),
+ unseen_padding: crate::conf::value(
context,
"mail.listing.conversations.unseen_padding",
),
- highlighted_fg: crate::conf::color(
- context,
- "mail.listing.conversations.highlighted_fg",
- ),
- highlighted_bg: crate::conf::color(
- context,
- "mail.listing.conversations.highlighted_bg",
- ),
- attachment_flag_fg: crate::conf::color(context, "mail.listing.attachment_flag_fg"),
- thread_snooze_flag_fg: crate::conf::color(
- context,
- "mail.listing.thread_snooze_flag_fg",
- ),
+ highlighted: crate::conf::value(context, "mail.listing.conversations.highlighted"),
+ attachment_flag: crate::conf::value(context, "mail.listing.attachment_flag"),
+ thread_snooze_flag: crate::conf::value(context, "mail.listing.thread_snooze_flag"),
..self.color_cache
};
@@ -711,7 +696,7 @@ impl ConversationsListing {
self.content =
CellBuffer::new_with_context(width, 4 * rows.len(), Cell::with_char(' '), context);
- let padding_fg = self.color_cache.padding;
+ let padding_fg = self.color_cache.padding.fg;
for ((idx, (thread, root_env_hash)), strings) in rows {
if !context.accounts[self.cursor_pos.0].contains_key(root_env_hash) {
@@ -719,14 +704,14 @@ impl ConversationsListing {
}
let thread = threads.thread_ref(thread);
let fg_color = if thread.unseen() > 0 {
- self.color_cache.unseen_fg
+ self.color_cache.unseen.fg
} else {
- self.color_cache.fg
+ self.color_cache.general.fg
};
let bg_color = if thread.unseen() > 0 {
- self.color_cache.unseen_bg
+ self.color_cache.unseen.bg
} else {
- self.color_cache.bg
+ self.color_cache.general.bg
};
/* draw flags */
let (x, _) = write_string_to_grid(
@@ -891,16 +876,16 @@ impl ConversationsListing {
let env_hash = threads.thread_nodes()[&thread_node_hash].message().unwrap();
let fg_color = if thread.unseen() > 0 {
- self.color_cache.unseen_fg
+ self.color_cache.unseen.fg
} else {
- self.color_cache.fg
+ self.color_cache.general.fg
};
let bg_color = if thread.unseen() > 0 {
- self.color_cache.unseen_bg
+ self.color_cache.unseen.bg
} else {
- self.color_cache.bg
+ self.color_cache.general.bg
};
- let padding_fg = self.color_cache.padding;
+ let padding_fg = self.color_cache.padding.fg;
let mut from_address_list = Vec::new();
let mut from_address_set: std::collections::HashSet<Vec<u8>> =
std::collections::HashSet::new();