diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-07-23 10:12:37 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-07-23 10:12:37 +0200 |
commit | bf7dd05dac41754ebab42de9ea737cb1b289c5e0 (patch) | |
tree | 4608919b39fd3737090abd90ae10f97f0e6f216d | |
parent | 24085ec8327de3ceaa4ad3a00ceca5902f2c6622 (diff) |
List tags for each message as well
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/main_view.rs | 6 |
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), |