mail/listing: add field names to row_attr! bool values
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>pull/329/head
parent
3691cd2962
commit
b6f769b2f4
|
@ -28,7 +28,7 @@ use super::*;
|
|||
use crate::{components::PageMovement, jobs::JoinHandle, segment_tree::SegmentTree};
|
||||
|
||||
macro_rules! row_attr {
|
||||
($color_cache:expr, $even: expr, $unseen:expr, $highlighted:expr, $selected:expr $(,)*) => {{
|
||||
($color_cache:expr, even: $even:expr, unseen: $unseen:expr, highlighted: $highlighted:expr, selected: $selected:expr $(,)*) => {{
|
||||
let color_cache = &$color_cache;
|
||||
let even = $even;
|
||||
let unseen = $unseen;
|
||||
|
@ -410,10 +410,10 @@ impl MailListingTrait for CompactListing {
|
|||
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
self.length % 2 == 0,
|
||||
threads.thread_ref(thread).unseen() > 0,
|
||||
false,
|
||||
false
|
||||
even: self.length % 2 == 0,
|
||||
unseen: threads.thread_ref(thread).unseen() > 0,
|
||||
highlighted: false,
|
||||
selected: false
|
||||
);
|
||||
self.rows.row_attr_cache.insert(self.length, row_attr);
|
||||
|
||||
|
@ -595,10 +595,10 @@ impl ListingTrait for CompactListing {
|
|||
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
thread.unseen() > 0,
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.is_thread_selected(thread_hash)
|
||||
even: idx % 2 == 0,
|
||||
unseen: thread.unseen() > 0,
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.is_thread_selected(thread_hash)
|
||||
);
|
||||
let x = self.data_columns.widths[0]
|
||||
+ self.data_columns.widths[1]
|
||||
|
@ -715,7 +715,7 @@ impl ListingTrait for CompactListing {
|
|||
self.data_columns
|
||||
.draw(grid, idx, self.cursor_pos.2, grid.bounds_iter(new_area));
|
||||
if highlight {
|
||||
let row_attr = row_attr!(self.color_cache, idx % 2 == 0, false, true, false);
|
||||
let row_attr = row_attr!(self.color_cache, even: idx % 2 == 0, unseen: false, highlighted: true, selected: false);
|
||||
grid.change_theme(new_area, row_attr);
|
||||
} else if let Some(row_attr) = self.rows.row_attr_cache.get(&idx) {
|
||||
grid.change_theme(new_area, *row_attr);
|
||||
|
@ -751,10 +751,10 @@ impl ListingTrait for CompactListing {
|
|||
/* highlight cursor */
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
self.cursor_pos.2 % 2 == 0,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
even: self.cursor_pos.2 % 2 == 0,
|
||||
unseen: false,
|
||||
highlighted: true,
|
||||
selected: false
|
||||
);
|
||||
grid.change_theme(area.nth_row(self.cursor_pos.2 % rows), row_attr);
|
||||
|
||||
|
@ -1108,10 +1108,10 @@ impl CompactListing {
|
|||
let idx = self.rows.thread_order[&thread_hash];
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
thread.unseen() > 0,
|
||||
false,
|
||||
self.rows.is_thread_selected(thread_hash)
|
||||
even: idx % 2 == 0,
|
||||
unseen: thread.unseen() > 0,
|
||||
highlighted: false,
|
||||
selected: self.rows.is_thread_selected(thread_hash)
|
||||
);
|
||||
self.rows.row_attr_cache.insert(idx, row_attr);
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ use super::*;
|
|||
use crate::{components::PageMovement, jobs::JoinHandle};
|
||||
|
||||
macro_rules! row_attr {
|
||||
($field:ident, $color_cache:expr, $unseen:expr, $highlighted:expr, $selected:expr $(,)*) => {{
|
||||
($field:ident, $color_cache:expr, unseen: $unseen:expr, highlighted: $highlighted:expr, selected: $selected:expr $(,)*) => {{
|
||||
let color_cache = &$color_cache;
|
||||
let unseen = $unseen;
|
||||
let highlighted = $highlighted;
|
||||
|
@ -65,7 +65,7 @@ macro_rules! row_attr {
|
|||
},
|
||||
}
|
||||
}};
|
||||
($color_cache:expr, $unseen:expr, $highlighted:expr, $selected:expr $(,)*) => {{
|
||||
($color_cache:expr, unseen: $unseen:expr, highlighted: $highlighted:expr, selected: $selected:expr $(,)*) => {{
|
||||
let color_cache = &$color_cache;
|
||||
let unseen = $unseen;
|
||||
let highlighted = $highlighted;
|
||||
|
@ -886,9 +886,9 @@ impl ConversationsListing {
|
|||
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
thread.unseen() > 0,
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.is_thread_selected(*thread_hash)
|
||||
unseen: thread.unseen() > 0,
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.is_thread_selected(*thread_hash)
|
||||
);
|
||||
// draw flags
|
||||
let (mut x, _) = grid.write_string(
|
||||
|
@ -908,9 +908,9 @@ impl ConversationsListing {
|
|||
let subject_attr = row_attr!(
|
||||
subject,
|
||||
self.color_cache,
|
||||
thread.unseen() > 0,
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.is_thread_selected(*thread_hash)
|
||||
unseen: thread.unseen() > 0,
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.is_thread_selected(*thread_hash)
|
||||
);
|
||||
// draw subject
|
||||
let (x_, subject_overflowed) = grid.write_string(
|
||||
|
@ -959,9 +959,9 @@ impl ConversationsListing {
|
|||
let date_attr = row_attr!(
|
||||
date,
|
||||
self.color_cache,
|
||||
thread.unseen() > 0,
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.is_thread_selected(*thread_hash)
|
||||
unseen: thread.unseen() > 0,
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.is_thread_selected(*thread_hash)
|
||||
);
|
||||
x = 0;
|
||||
x += grid
|
||||
|
@ -981,9 +981,9 @@ impl ConversationsListing {
|
|||
let from_attr = row_attr!(
|
||||
from,
|
||||
self.color_cache,
|
||||
thread.unseen() > 0,
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.is_thread_selected(*thread_hash)
|
||||
unseen: thread.unseen() > 0,
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.is_thread_selected(*thread_hash)
|
||||
);
|
||||
// draw from
|
||||
x += grid
|
||||
|
|
|
@ -27,7 +27,7 @@ use super::{EntryStrings, *};
|
|||
use crate::{components::PageMovement, jobs::JoinHandle};
|
||||
|
||||
macro_rules! row_attr {
|
||||
($color_cache:expr, $even: expr, $unseen:expr, $highlighted:expr, $selected:expr $(,)*) => {{
|
||||
($color_cache:expr, even: $even:expr, unseen: $unseen:expr, highlighted: $highlighted:expr, selected: $selected:expr $(,)*) => {{
|
||||
let color_cache = &$color_cache;
|
||||
let even = $even;
|
||||
let unseen = $unseen;
|
||||
|
@ -368,10 +368,10 @@ impl ListingTrait for PlainListing {
|
|||
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.selection[&i]
|
||||
even: idx % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.selection[&i]
|
||||
);
|
||||
|
||||
let x = self.data_columns.widths[0]
|
||||
|
@ -487,7 +487,7 @@ impl ListingTrait for PlainListing {
|
|||
self.data_columns
|
||||
.draw(grid, idx, self.cursor_pos.2, grid.bounds_iter(new_area));
|
||||
if highlight {
|
||||
let row_attr = row_attr!(self.color_cache, idx % 2 == 0, false, true, false);
|
||||
let row_attr = row_attr!(self.color_cache, even: idx % 2 == 0, unseen: false, highlighted: true, selected: false);
|
||||
grid.change_theme(new_area, row_attr);
|
||||
} else if let Some(row_attr) = self.rows.row_attr_cache.get(&idx) {
|
||||
grid.change_theme(new_area, *row_attr);
|
||||
|
@ -523,10 +523,10 @@ impl ListingTrait for PlainListing {
|
|||
/* highlight cursor */
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
self.cursor_pos.2 % 2 == 0,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
even: self.cursor_pos.2 % 2 == 0,
|
||||
unseen: false,
|
||||
highlighted: true,
|
||||
selected: false
|
||||
);
|
||||
grid.change_theme(area.nth_row(self.cursor_pos.2 % rows), row_attr);
|
||||
|
||||
|
@ -836,10 +836,10 @@ impl PlainListing {
|
|||
}
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
self.length % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
false,
|
||||
false
|
||||
even: self.length % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: false,
|
||||
selected: false
|
||||
);
|
||||
self.rows.row_attr_cache.insert(self.length, row_attr);
|
||||
|
||||
|
@ -1111,10 +1111,10 @@ impl PlainListing {
|
|||
let idx = self.rows.env_order[&env_hash];
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
false,
|
||||
self.rows.selection[&env_hash]
|
||||
even: idx % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: false,
|
||||
selected: self.rows.selection[&env_hash]
|
||||
);
|
||||
self.rows.row_attr_cache.insert(idx, row_attr);
|
||||
|
||||
|
@ -1526,10 +1526,10 @@ impl Component for PlainListing {
|
|||
.get_env(env_hash);
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
row % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
false,
|
||||
self.rows.selection[&env_hash]
|
||||
even: row % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: false,
|
||||
selected: self.rows.selection[&env_hash]
|
||||
);
|
||||
self.rows.row_attr_cache.insert(row, row_attr);
|
||||
let page_no = (self.new_cursor_pos.2).wrapping_div(rows);
|
||||
|
|
|
@ -27,7 +27,7 @@ use super::*;
|
|||
use crate::{components::PageMovement, jobs::JoinHandle};
|
||||
|
||||
macro_rules! row_attr {
|
||||
($color_cache:expr, $even: expr, $unseen:expr, $highlighted:expr, $selected:expr $(,)*) => {{
|
||||
($color_cache:expr, even: $even:expr, unseen: $unseen:expr, highlighted: $highlighted:expr, selected: $selected:expr $(,)*) => {{
|
||||
let color_cache = &$color_cache;
|
||||
let even = $even;
|
||||
let unseen = $unseen;
|
||||
|
@ -575,7 +575,7 @@ impl ListingTrait for ThreadListing {
|
|||
self.data_columns
|
||||
.draw(grid, idx, self.cursor_pos.2, grid.bounds_iter(new_area));
|
||||
if highlight {
|
||||
let row_attr = row_attr!(self.color_cache, idx % 2 == 0, false, true, false);
|
||||
let row_attr = row_attr!(self.color_cache, even: idx % 2 == 0, unseen: false, highlighted: true, selected: false);
|
||||
grid.change_theme(new_area, row_attr);
|
||||
} else if let Some(row_attr) = self.rows.row_attr_cache.get(&idx) {
|
||||
grid.change_theme(new_area, *row_attr);
|
||||
|
@ -622,10 +622,10 @@ impl ListingTrait for ThreadListing {
|
|||
// highlight cursor
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
self.cursor_pos.2 % 2 == 0,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
even: self.cursor_pos.2 % 2 == 0,
|
||||
unseen: false,
|
||||
highlighted: true,
|
||||
selected: false
|
||||
);
|
||||
grid.change_theme(area.nth_row(self.cursor_pos.2 % rows), row_attr);
|
||||
|
||||
|
@ -652,10 +652,10 @@ impl ListingTrait for ThreadListing {
|
|||
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.selection[&env_hash],
|
||||
even: idx % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.selection[&env_hash],
|
||||
);
|
||||
|
||||
let x = self.data_columns.widths[0]
|
||||
|
@ -982,10 +982,10 @@ impl ThreadListing {
|
|||
}
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
!self.seen_cache[env_hash],
|
||||
self.cursor_pos.2 == idx,
|
||||
self.rows.selection[env_hash]
|
||||
even: idx % 2 == 0,
|
||||
unseen: !self.seen_cache[env_hash],
|
||||
highlighted: self.cursor_pos.2 == idx,
|
||||
selected: self.rows.selection[env_hash]
|
||||
);
|
||||
{
|
||||
let area = self.data_columns.columns[0].area();
|
||||
|
@ -1151,10 +1151,10 @@ impl ThreadListing {
|
|||
let idx = self.rows.env_order[&env_hash];
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
idx % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
false,
|
||||
self.rows.selection[&env_hash]
|
||||
even: idx % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: false,
|
||||
selected: self.rows.selection[&env_hash]
|
||||
);
|
||||
self.seen_cache.insert(env_hash, envelope.is_seen());
|
||||
|
||||
|
@ -1179,13 +1179,13 @@ impl ThreadListing {
|
|||
let row_attr = if let Some(env_hash) = self.get_env_under_cursor(top_idx + i) {
|
||||
row_attr!(
|
||||
self.color_cache,
|
||||
(top_idx + i) % 2 == 0,
|
||||
!self.seen_cache[&env_hash],
|
||||
self.cursor_pos.2 == (top_idx + i),
|
||||
self.rows.selection[&env_hash]
|
||||
even: (top_idx + i) % 2 == 0,
|
||||
unseen: !self.seen_cache[&env_hash],
|
||||
highlighted: self.cursor_pos.2 == (top_idx + i),
|
||||
selected: self.rows.selection[&env_hash]
|
||||
)
|
||||
} else {
|
||||
row_attr!(self.color_cache, (top_idx + i) % 2 == 0, false, true, false)
|
||||
row_attr!(self.color_cache, even: (top_idx + i) % 2 == 0, unseen: false, highlighted: true, selected: false)
|
||||
};
|
||||
|
||||
let idx_col_area = self.data_columns.columns[0].area();
|
||||
|
@ -1438,10 +1438,10 @@ impl Component for ThreadListing {
|
|||
.get_env(env_hash);
|
||||
let row_attr = row_attr!(
|
||||
self.color_cache,
|
||||
row % 2 == 0,
|
||||
!envelope.is_seen(),
|
||||
false,
|
||||
self.rows.selection[&env_hash]
|
||||
even: row % 2 == 0,
|
||||
unseen: !envelope.is_seen(),
|
||||
highlighted: false,
|
||||
selected: self.rows.selection[&env_hash]
|
||||
);
|
||||
self.rows.row_attr_cache.insert(row, row_attr);
|
||||
self.force_draw |= row >= top_idx && row < top_idx + rows;
|
||||
|
|
Loading…
Reference in New Issue