aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/app.rs6
-rw-r--r--src/habit.rs1
-rw-r--r--src/views.rs12
3 files changed, 11 insertions, 8 deletions
diff --git a/src/app.rs b/src/app.rs
index 1240877..f8797fc 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -287,16 +287,16 @@ impl View for App {
287 if self.habits.is_empty() { 287 if self.habits.is_empty() {
288 return EventResult::Consumed(None); 288 return EventResult::Consumed(None);
289 } 289 }
290 if self.habits[self.focus].view_mode() == ViewMode::Month { 290 if self.habits[self.focus].view_mode() == ViewMode::Week {
291 self.set_mode(ViewMode::Day) 291 self.set_mode(ViewMode::Day)
292 } else { 292 } else {
293 self.set_mode(ViewMode::Month) 293 self.set_mode(ViewMode::Week)
294 } 294 }
295 return EventResult::Consumed(None); 295 return EventResult::Consumed(None);
296 } 296 }
297 Event::Char('V') => { 297 Event::Char('V') => {
298 for habit in self.habits.iter_mut() { 298 for habit in self.habits.iter_mut() {
299 habit.set_view_mode(ViewMode::Month); 299 habit.set_view_mode(ViewMode::Week);
300 } 300 }
301 return EventResult::Consumed(None); 301 return EventResult::Consumed(None);
302 } 302 }
diff --git a/src/habit.rs b/src/habit.rs
index cb6f03d..725e15f 100644
--- a/src/habit.rs
+++ b/src/habit.rs
@@ -18,6 +18,7 @@ pub enum TrackEvent {
18#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)] 18#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
19pub enum ViewMode { 19pub enum ViewMode {
20 Day, 20 Day,
21 Week,
21 Month, 22 Month,
22 Year, 23 Year,
23} 24}
diff --git a/src/views.rs b/src/views.rs
index f5ba01b..9e4a844 100644
--- a/src/views.rs
+++ b/src/views.rs
@@ -75,7 +75,7 @@ where
75 let completions = weekly_goal - remaining; 75 let completions = weekly_goal - remaining;
76 let full = CONFIGURATION.view_width - 8; 76 let full = CONFIGURATION.view_width - 8;
77 let bars_to_fill = (completions * full as u32) / weekly_goal; 77 let bars_to_fill = (completions * full as u32) / weekly_goal;
78 let percentage = (completions as f64 * 100f64) / weekly_goal as f64; 78 let percentage = (completions as f64 * 100.) / weekly_goal as f64;
79 printer.with_style(future_style, |p| { 79 printer.with_style(future_style, |p| {
80 p.print((4, line_nr), &"―".repeat(full)); 80 p.print((4, line_nr), &"―".repeat(full));
81 }); 81 });
@@ -89,14 +89,15 @@ where
89 future_style 89 future_style
90 }, 90 },
91 |p| { 91 |p| {
92 p.print((0, line_nr), &format!("{:3.0}% ", percentage)); 92 p.print((0, line_nr), &format!("{:2.0}% ", percentage));
93 }, 93 },
94 ); 94 );
95 } 95 }
96 }; 96 };
97
97 let draw_day = |printer: &Printer| { 98 let draw_day = |printer: &Printer| {
98 let mut i = 1; 99 let mut i = 0;
99 while let Some(d) = NaiveDate::from_ymd_opt(year, month, i) { 100 while let Some(d) = NaiveDate::from_ymd_opt(year, month, i + 1) {
100 let day_style; 101 let day_style;
101 if self.reached_goal(d) { 102 if self.reached_goal(d) {
102 day_style = goal_reached_style; 103 day_style = goal_reached_style;
@@ -116,9 +117,10 @@ where
116 i += 1; 117 i += 1;
117 } 118 }
118 }; 119 };
120
119 match self.view_mode() { 121 match self.view_mode() {
120 ViewMode::Day => draw_day(printer), 122 ViewMode::Day => draw_day(printer),
121 ViewMode::Month => draw_month(printer), 123 ViewMode::Week => draw_month(printer),
122 _ => draw_day(printer), 124 _ => draw_day(printer),
123 }; 125 };
124 } 126 }