From 9a711bbe96d753d0dbf70007adc0ff89823aa9ad Mon Sep 17 00:00:00 2001 From: rabite Date: Wed, 20 Mar 2019 13:58:59 +0100 Subject: handle long lines in status/footer --- src/foldview.rs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/foldview.rs') diff --git a/src/foldview.rs b/src/foldview.rs index 74c8f9e..d45eff6 100644 --- a/src/foldview.rs +++ b/src/foldview.rs @@ -44,15 +44,21 @@ impl Foldable for LogEntry { impl From<&HError> for LogEntry { fn from(from: &HError) -> LogEntry { let time: DateTime = Local::now(); + + let logcolor = match from { + HError::Log(_) => term::normal_color(), + _ => term::color_red() + }; + let description = format!("{}{}{}: {}", term::color_green(), time.format("%F %R"), - term::color_red(), + logcolor, from).lines().take(1).collect(); let mut content = format!("{}{}{}: {}\n", term::color_green(), time.format("%F %R"), - term::color_red(), + logcolor, from); @@ -93,7 +99,7 @@ impl FoldableWidgetExt for ListView> { fn render_header(&self) -> HResult { let (xsize, _) = self.core.coordinates.size_u(); - let current = self.current_fold().unwrap_or(0); + let current = self.current_fold().map(|n| n+1).unwrap_or(0); let num = self.content.len(); let hint = format!("{} / {}", current, num); let hint_xpos = xsize - hint.len(); @@ -118,12 +124,17 @@ impl FoldableWidgetExt for ListView> { let hint_xpos = xsize - line_hint.len(); let hint_ypos = ysize + ypos + 1; - let footer = format!("LogEntry: {}{}{}{}{}", - description, + let sized_description = term::sized_string_u(&description, + xsize + - (line_hint.len()+2)); + + let footer = format!("{}{}{}{}{}", + sized_description, term::reset(), term::status_bg(), term::goto_xy_u(hint_xpos, hint_ypos), line_hint); + Ok(footer) } else { Ok("No log entries".to_string()) } } -- cgit v1.2.3