diff --git a/src/app.rs b/src/app.rs index c514de2..9bd55a6 100644 --- a/src/app.rs +++ b/src/app.rs @@ -612,6 +612,13 @@ impl TTApp { let maximum_column_width = rect.width; let widths = self.calculate_widths(&tasks, &headers, maximum_column_width); + for (i, header) in headers.iter().enumerate() { + if header == "Description" || header == "Definition" { + self.task_report_table.description_width = widths[i] - 3*headers.iter().len(); + break + } + } + let selected = self.task_table_state.selected().unwrap_or_default(); let header = headers.iter(); let mut rows = vec![]; diff --git a/src/task_report.rs b/src/task_report.rs index d23c962..fdf19cd 100644 --- a/src/task_report.rs +++ b/src/task_report.rs @@ -37,6 +37,7 @@ pub struct TaskReportTable { pub columns: Vec, pub tasks: Vec>, pub virtual_tags: Vec, + pub description_width: usize, } impl TaskReportTable { @@ -79,6 +80,7 @@ impl TaskReportTable { columns: vec![], tasks: vec![vec![]], virtual_tags: virtual_tags.iter().map(|s| s.to_string()).collect::>(), + description_width: 100, }; task_report_table.export_headers()?; Ok(task_report_table) @@ -234,7 +236,7 @@ impl TaskReportTable { None => format!(""), }; let mut d = task.description().to_string(); - let mut end = 20; + let mut end = self.description_width; while !d.is_char_boundary(end) && end < d.len() { end += 1; } @@ -246,7 +248,7 @@ impl TaskReportTable { }, "description.truncated" => { let mut d = task.description().to_string(); - let mut end = 20; + let mut end = self.description_width; while !d.is_char_boundary(end) && end < d.len() { end += 1; }