ui/listings: truncate subject at 150 grapheme width

Large subjects would cause large CellBuffer allocations.
async
Manos Pitsidianakis 2019-12-12 11:07:54 +02:00
parent b401b64f35
commit 7432be5aaa
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
3 changed files with 11 additions and 5 deletions

View File

@ -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 { "" },

View File

@ -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 { "" },

View File

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