diff --git a/src/app.rs b/src/app.rs index 4cce3bc..5941fc4 100644 --- a/src/app.rs +++ b/src/app.rs @@ -408,9 +408,12 @@ impl TTApp { .expect(format!("Unable to run `task _get rc.context.{}`", self.context_name).as_str()) .stdout, ) - .unwrap_or_else( - |_| panic!("Unable to decode utf8 from stdout of `task _get rc.context.{}`", self.context_name) - ); + .unwrap_or_else(|_| { + panic!( + "Unable to decode utf8 from stdout of `task _get rc.context.{}`", + self.context_name + ) + }); self.context_filter = self.context_filter.strip_suffix('\n').unwrap_or("").to_string(); } @@ -1292,7 +1295,9 @@ impl TTApp { .unwrap() .iter() .filter(|s| !self.task_report_table.virtual_tags.contains(s)) - .next().is_none() { + .next() + .is_none() + { add_tag(&mut task, "TAGGED".to_string()); } } diff --git a/src/calendar.rs b/src/calendar.rs index f9888f5..21520d8 100644 --- a/src/calendar.rs +++ b/src/calendar.rs @@ -128,32 +128,6 @@ impl<'a> Widget for Calendar<'a> { }) .collect(); - days.append( - &mut months - .iter() - .map(|i| { - let first = NaiveDate::from_ymd(year + 1, i + 1, 1); - ( - first, - first - Duration::days(first.weekday().num_days_from_sunday() as i64), - ) - }) - .collect::>(), - ); - - days.append( - &mut months - .iter() - .map(|i| { - let first = NaiveDate::from_ymd(year + 2, i + 1, 1); - ( - first, - first - Duration::days(first.weekday().num_days_from_sunday() as i64), - ) - }) - .collect::>(), - ); - let mut startm = 0 as usize; if self.months_per_row > area.width as usize / 8 / 3 || self.months_per_row == 0 { self.months_per_row = area.width as usize / 8 / 3; @@ -177,10 +151,11 @@ impl<'a> Widget for Calendar<'a> { loop { let endm = std::cmp::min(startm + self.months_per_row, 12); let mut x = area.x + startx; - for (c, d) in days.iter_mut().enumerate().skip(startm).take(endm) { + for c in startm..endm { if c > startm { x += 1; } + let d = &mut days[c]; let m = d.0.month() as usize; let s = format!("{:^20}", month_names[m - 1]); let style = Style::default().bg(Color::Rgb(220, 220, 220)); @@ -193,7 +168,8 @@ impl<'a> Widget for Calendar<'a> { } y += 1; let mut x = area.x + startx; - for (_, d) in days.iter_mut().enumerate().skip(startm).take(endm) { + for c in startm..endm { + let d = &mut days[c]; let m = d.0.month() as usize; let style = Style::default().bg(Color::Rgb(220, 220, 220)); if m == today.month() as usize && self.year + year as i32 == today.year() { @@ -255,6 +231,19 @@ impl<'a> Widget for Calendar<'a> { } else if startm >= 12 { startm = 0; year += 1; + days.append( + &mut months + .iter() + .map(|i| { + let first = NaiveDate::from_ymd(self.year + year as i32, i + 1, 1); + ( + first, + first - Duration::days(first.weekday().num_days_from_sunday() as i64), + ) + }) + .collect::>(), + ); + let x = area.x; let s = format!( "{year:^width$}",