From eeeb6303fc5c860d85ec3ac4a4107ec70883557e Mon Sep 17 00:00:00 2001 From: Dheepak Krishnamurthy Date: Mon, 15 Feb 2021 16:25:35 -0700 Subject: [PATCH] Add more tags --- src/app.rs | 20 +++++++++++++++++--- src/config.rs | 3 --- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/app.rs b/src/app.rs index bc76bc9..20cd0c6 100644 --- a/src/app.rs +++ b/src/app.rs @@ -567,12 +567,12 @@ impl TTApp { let mut style = Style::default(); for tag_name in virtual_tag_names_in_precedence.iter().rev() { - if tag_name == "uda." { + if tag_name == "uda." || tag_name == "priority" { if let Some(p) = task.priority() { let c = self .config .color - .get(&format!("color.{}priority.{}", tag_name, p)) + .get(&format!("color.uda.priority.{}", p)) .cloned() .unwrap_or_default(); style = config::blend(style, c); @@ -1285,6 +1285,7 @@ impl TTApp { for l_i in 0..tasks.len() { let default_deps = vec![]; let deps = tasks[l_i].depends().unwrap_or(&default_deps).clone(); + add_tag(&mut tasks[l_i], "UNBLOCKED".to_string()); for dep in deps { for r_i in 0..tasks.len() { if tasks[r_i].uuid() == &dep { @@ -1295,6 +1296,7 @@ impl TTApp { && rstatus != &TaskStatus::Completed && rstatus != &TaskStatus::Deleted { + remove_tag(&mut tasks[l_i], "UNBLOCKED".to_string()); add_tag(&mut tasks[l_i], "BLOCKED".to_string()); add_tag(&mut tasks[r_i], "BLOCKING".to_string()); } @@ -1338,6 +1340,9 @@ impl TTApp { { add_tag(&mut task, "TAGGED".to_string()); } + if !task.uda().is_empty() { + add_tag(&mut task, "UDA".to_string()); + } if task.mask().is_some() { add_tag(&mut task, "TEMPLATE".to_string()); } @@ -1700,6 +1705,14 @@ pub fn add_tag(task: &mut Task, tag: String) { } } +pub fn remove_tag(task: &mut Task, tag: String) { + if let Some(t) = task.tags_mut() { + if let Some(index) = t.iter().position(|x| *x == tag) { + t.remove(index); + } + } +} + #[cfg(test)] mod tests { use super::*; @@ -1736,6 +1749,7 @@ mod tests { .iter() .map(|s| s.to_string()) .collect::>(); + dbg!(task.tags()); for tag in tags { assert!(task.tags().unwrap().contains(&tag)); } @@ -1769,7 +1783,7 @@ mod tests { dbg!(style); assert!(style == Style::default().fg(Color::Green)); - let task = app.task_by_id(11).unwrap(); + let task = app.task_by_id(2).unwrap(); dbg!(task.tags().unwrap()); let style = app.style_for_task(&task); dbg!(style); diff --git a/src/config.rs b/src/config.rs index 179946e..69fa104 100644 --- a/src/config.rs +++ b/src/config.rs @@ -7,9 +7,6 @@ use tui::style::{Color, Modifier, Style}; pub fn blend(style: Style, c: TColor) -> Style { let mut style = style; - let mut c = c; - c.upgrade(); - if c.fg != Color::Reset { style = style.fg(c.fg); }