From bf7dd05dac41754ebab42de9ea737cb1b289c5e0 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 23 Jul 2020 10:12:37 +0200 Subject: List tags for each message as well Signed-off-by: Matthias Beyer --- src/main_view.rs | 6 ++++++ 1 file changed, 6 insertions(+) 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::::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, date: String, from: String, to: String, @@ -158,6 +162,7 @@ impl TableViewItem 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 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), -- cgit v1.2.3