diff options
author | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2019-12-12 11:07:54 +0200 |
---|---|---|
committer | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2019-12-12 11:07:54 +0200 |
commit | 7432be5aaa0f305c5253908b0d8bc40473041e51 (patch) | |
tree | b8cf39f246c5f7c5e685f1d970642225b851b563 /ui/src/components | |
parent | b401b64f35db66f4443a94d27ef23413f5afdee9 (diff) |
ui/listings: truncate subject at 150 grapheme width
Large subjects would cause large CellBuffer allocations.
Diffstat (limited to 'ui/src/components')
-rw-r--r-- | ui/src/components/mail/listing/compact.rs | 6 | ||||
-rw-r--r-- | ui/src/components/mail/listing/conversations.rs | 6 | ||||
-rw-r--r-- | ui/src/components/mail/listing/plain.rs | 4 |
3 files changed, 11 insertions, 5 deletions
diff --git a/ui/src/components/mail/listing/compact.rs b/ui/src/components/mail/listing/compact.rs index d9c8e0b6..2aa2f678 100644 --- a/ui/src/components/mail/listing/compact.rs +++ b/ui/src/components/mail/listing/compact.rs @@ -563,10 +563,12 @@ impl CompactListing { tags.pop(); } } + let mut subject = e.subject().to_string(); + subject.truncate_at_boundary(150); if thread_node.len() > 0 { EntryStrings { date: DateString(ConversationsListing::format_date(thread_node)), - subject: SubjectString(format!("{} ({})", e.subject(), thread_node.len(),)), + subject: SubjectString(format!("{} ({})", subject, thread_node.len(),)), flag: FlagString(format!( "{}{}", if e.has_attachments() { "📎" } else { "" }, @@ -578,7 +580,7 @@ impl CompactListing { } else { EntryStrings { date: DateString(ConversationsListing::format_date(thread_node)), - subject: SubjectString(e.subject().to_string()), + subject: SubjectString(subject), flag: FlagString(format!( "{}{}", if e.has_attachments() { "📎" } else { "" }, diff --git a/ui/src/components/mail/listing/conversations.rs b/ui/src/components/mail/listing/conversations.rs index 437ddc0f..9cfd2543 100644 --- a/ui/src/components/mail/listing/conversations.rs +++ b/ui/src/components/mail/listing/conversations.rs @@ -558,10 +558,12 @@ impl ConversationsListing { tags.pop(); } } + let mut subject = e.subject().to_string(); + subject.truncate_at_boundary(150); if thread_node.len() > 0 { EntryStrings { date: DateString(ConversationsListing::format_date(thread_node)), - subject: SubjectString(format!("{} ({})", e.subject(), thread_node.len(),)), + subject: SubjectString(format!("{} ({})", subject, thread_node.len(),)), flag: FlagString(format!( "{}{}", if e.has_attachments() { "📎" } else { "" }, @@ -573,7 +575,7 @@ impl ConversationsListing { } else { EntryStrings { date: DateString(ConversationsListing::format_date(thread_node)), - subject: SubjectString(e.subject().to_string()), + subject: SubjectString(subject), flag: FlagString(format!( "{}{}", if e.has_attachments() { "📎" } else { "" }, diff --git a/ui/src/components/mail/listing/plain.rs b/ui/src/components/mail/listing/plain.rs index 22757bce..be72d6d8 100644 --- a/ui/src/components/mail/listing/plain.rs +++ b/ui/src/components/mail/listing/plain.rs @@ -536,9 +536,11 @@ impl PlainListing { tags.pop(); } } + let mut subject = e.subject().to_string(); + subject.truncate_at_boundary(150); EntryStrings { date: DateString(PlainListing::format_date(&e)), - subject: SubjectString(format!("{}", e.subject())), + subject: SubjectString(subject), flag: FlagString(format!("{}", if e.has_attachments() { "📎" } else { "" },)), from: FromString(address_list!((e.from()) as comma_sep_list)), tags: TagString(tags, colors), |