mirror of
https://github.com/kdheepak/taskwarrior-tui.git
synced 2025-08-27 06:37:19 +02:00
Fix calendar indexing error
This commit is contained in:
parent
b76a20186b
commit
1cea68e550
2 changed files with 26 additions and 32 deletions
13
src/app.rs
13
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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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::<Vec<_>>(),
|
||||
);
|
||||
|
||||
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::<Vec<_>>(),
|
||||
);
|
||||
|
||||
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::<Vec<_>>(),
|
||||
);
|
||||
|
||||
let x = area.x;
|
||||
let s = format!(
|
||||
"{year:^width$}",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue