summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-07-23 10:12:37 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-07-23 10:12:37 +0200
commitbf7dd05dac41754ebab42de9ea737cb1b289c5e0 (patch)
tree4608919b39fd3737090abd90ae10f97f0e6f216d
parent24085ec8327de3ceaa4ad3a00ceca5902f2c6622 (diff)
List tags for each message as well
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--src/main_view.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main_view.rs b/src/main_view.rs
index 8d6675e..e3e7629 100644
--- a/src/main_view.rs
+++ b/src/main_view.rs
@@ -98,6 +98,7 @@ impl MainView {
.map(|msg| {
Ok(MailListingData {
mail: crate::mail::UnparsedMail::read_from_path(msg.id().to_string(), msg.filename())?,
+ tags: msg.tags().collect(),
date: chrono::naive::NaiveDateTime::from_timestamp_opt(msg.date(), 0)
.ok_or_else(|| anyhow!("Failed to parse timestamp: {}", msg.date()))?
.to_string(),
@@ -111,6 +112,7 @@ impl MainView {
let tab = TableView::<MailListingData, MailListingColumn>::new()
.column(MailListingColumn::Date, "Date", |c| c.width(20))
+ .column(MailListingColumn::Tags, "Tags", |c| c.width(20))
.column(MailListingColumn::From, "From", |c| c)
.column(MailListingColumn::To, "To", |c| c)
.column(MailListingColumn::Subject, "Subject", |c| c)
@@ -139,6 +141,7 @@ impl MainView {
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
pub enum MailListingColumn {
Date,
+ Tags,
From,
To,
Subject,
@@ -147,6 +150,7 @@ pub enum MailListingColumn {
#[derive(Clone, Debug)]
pub struct MailListingData {
mail: crate::mail::UnparsedMail,
+ tags: Vec<String>,
date: String,
from: String,
to: String,
@@ -158,6 +162,7 @@ impl TableViewItem<MailListingColumn> for MailListingData {
fn to_column(&self, column: MailListingColumn) -> String {
match column {
MailListingColumn::Date => self.date.clone(),
+ MailListingColumn::Tags => self.tags.join(", "),
MailListingColumn::From => self.from.clone(),
MailListingColumn::To => self.to.clone(),
MailListingColumn::Subject => self.subject.clone(),
@@ -169,6 +174,7 @@ impl TableViewItem<MailListingColumn> for MailListingData {
{
match column {
MailListingColumn::Date => self.date.cmp(&other.date),
+ MailListingColumn::Tags => self.tags.cmp(&other.tags),
MailListingColumn::From => self.from.cmp(&other.from),
MailListingColumn::To => self.to.cmp(&other.to),
MailListingColumn::Subject => self.subject.cmp(&other.subject),