Skip to content

Commit 192a305

Browse files
Merge pull request #120 from TheRustyPickle/infinite-year
Add infinite year scrolling
2 parents ead33b8 + 746ddbc commit 192a305

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

tui/src/key_checker/key_handler.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ impl<'a> InputKeyHandler<'a> {
485485
self.reload_home_table()?;
486486
}
487487
HomeTab::Years => {
488-
self.home_years.previous();
488+
self.home_years.previous_yearly();
489489
self.home_months.set_index_zero();
490490
self.reload_home_table()?;
491491
}
@@ -502,7 +502,7 @@ impl<'a> InputKeyHandler<'a> {
502502
self.reload_chart_data()?;
503503
}
504504
ChartTab::Years => {
505-
self.chart_years.previous();
505+
self.chart_years.previous_yearly();
506506
self.lerp_state.clear();
507507
self.chart_months.set_index_zero();
508508
self.reload_chart_data()?;
@@ -527,7 +527,7 @@ impl<'a> InputKeyHandler<'a> {
527527
}
528528
SummaryTab::Years => {
529529
self.summary_months.set_index_zero();
530-
self.summary_years.previous();
530+
self.summary_years.previous_yearly();
531531
self.reload_summary()?;
532532
}
533533
SummaryTab::Months => {
@@ -541,7 +541,7 @@ impl<'a> InputKeyHandler<'a> {
541541
CurrentUi::Activity => match self.activity_tab {
542542
ActivityTab::Years => {
543543
self.activity_months.set_index_zero();
544-
self.activity_years.previous();
544+
self.activity_years.previous_yearly();
545545
self.reload_activity_table()?;
546546
}
547547
ActivityTab::Months => {
@@ -565,7 +565,7 @@ impl<'a> InputKeyHandler<'a> {
565565
self.reload_home_table()?;
566566
}
567567
HomeTab::Years => {
568-
self.home_years.next();
568+
self.home_years.next_yearly();
569569
self.home_months.set_index_zero();
570570
self.reload_home_table()?;
571571
}
@@ -583,7 +583,7 @@ impl<'a> InputKeyHandler<'a> {
583583
}
584584
ChartTab::Years => {
585585
self.lerp_state.clear();
586-
self.chart_years.next();
586+
self.chart_years.next_yearly();
587587
self.chart_months.set_index_zero();
588588
self.reload_chart_data()?;
589589
}
@@ -605,7 +605,7 @@ impl<'a> InputKeyHandler<'a> {
605605
}
606606
SummaryTab::Years => {
607607
self.summary_months.set_index_zero();
608-
self.summary_years.next();
608+
self.summary_years.next_yearly();
609609
self.reload_summary()?;
610610
}
611611
SummaryTab::Months => {
@@ -617,7 +617,7 @@ impl<'a> InputKeyHandler<'a> {
617617
CurrentUi::Activity => match self.activity_tab {
618618
ActivityTab::Years => {
619619
self.activity_months.set_index_zero();
620-
self.activity_years.next();
620+
self.activity_years.next_yearly();
621621
self.reload_activity_table()?;
622622
}
623623
ActivityTab::Months => {

tui/src/page_handler/ui_state.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,17 @@ impl IndexedData {
140140
self.index = (self.index + 1) % self.titles.len();
141141
}
142142

143+
pub fn next_yearly(&mut self) {
144+
if self.index == 8 {
145+
self.titles.remove(0);
146+
let mut final_year: u64 = self.titles[self.titles.len() - 1].parse().unwrap();
147+
final_year += 1;
148+
self.titles.push(final_year.to_string());
149+
} else {
150+
self.next()
151+
}
152+
}
153+
143154
/// Decreases the current index by 1 or goes to final index if at 0
144155
pub fn previous(&mut self) {
145156
if self.index > 0 {
@@ -149,6 +160,21 @@ impl IndexedData {
149160
}
150161
}
151162

163+
pub fn previous_yearly(&mut self) {
164+
if self.index == 8 {
165+
let first_year: i64 = self.titles[0].parse().unwrap();
166+
167+
if first_year != 2022 {
168+
self.titles.pop();
169+
self.titles.insert(0, (first_year - 1).to_string());
170+
} else if self.index > 0 {
171+
self.index -= 1;
172+
}
173+
} else if self.index > 0 {
174+
self.index -= 1;
175+
}
176+
}
177+
152178
pub fn set_index_zero(&mut self) {
153179
self.index = 0;
154180
}

0 commit comments

Comments
 (0)