mail/listing: add field names to row_attr! bool values

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
pull/329/head
Manos Pitsidianakis 2023-12-17 18:35:09 +02:00
parent 3691cd2962
commit b6f769b2f4
Signed by: Manos Pitsidianakis
GPG Key ID: 7729C7707F7E09D0
4 changed files with 81 additions and 81 deletions

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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;