diff options
Diffstat (limited to 'src/app.rs')
-rw-r--r-- | src/app.rs | 29 |
1 files changed, 6 insertions, 23 deletions
@@ -9,26 +9,13 @@ use cursive::{Printer, Vec2}; | |||
9 | 9 | ||
10 | use chrono::{Local, NaiveDate}; | 10 | use chrono::{Local, NaiveDate}; |
11 | 11 | ||
12 | use crate::habit::{Bit, Count, Habit, HabitWrapper}; | 12 | use crate::habit::{Bit, Count, Habit, HabitWrapper, ViewMode}; |
13 | use crate::utils; | 13 | use crate::utils; |
14 | use crate::Command; | 14 | use crate::Command; |
15 | use crate::CONFIGURATION; | 15 | use crate::CONFIGURATION; |
16 | 16 | ||
17 | use serde::{Deserialize, Serialize}; | 17 | use serde::{Deserialize, Serialize}; |
18 | 18 | ||
19 | #[derive(PartialEq, Serialize, Deserialize)] | ||
20 | pub enum ViewMode { | ||
21 | Day, | ||
22 | Month, | ||
23 | Year, | ||
24 | } | ||
25 | |||
26 | impl std::default::Default for ViewMode { | ||
27 | fn default() -> Self { | ||
28 | ViewMode::Month | ||
29 | } | ||
30 | } | ||
31 | |||
32 | struct StatusLine(String, String); | 19 | struct StatusLine(String, String); |
33 | 20 | ||
34 | #[derive(Serialize, Deserialize)] | 21 | #[derive(Serialize, Deserialize)] |
@@ -41,9 +28,6 @@ pub struct App { | |||
41 | focus: usize, | 28 | focus: usize, |
42 | 29 | ||
43 | #[serde(skip)] | 30 | #[serde(skip)] |
44 | view_mode: ViewMode, | ||
45 | |||
46 | #[serde(skip)] | ||
47 | view_month_offset: u32, | 31 | view_month_offset: u32, |
48 | } | 32 | } |
49 | 33 | ||
@@ -51,7 +35,6 @@ impl App { | |||
51 | pub fn new() -> Self { | 35 | pub fn new() -> Self { |
52 | return App { | 36 | return App { |
53 | habits: vec![], | 37 | habits: vec![], |
54 | view_mode: ViewMode::Day, | ||
55 | focus: 0, | 38 | focus: 0, |
56 | view_month_offset: 0, | 39 | view_month_offset: 0, |
57 | }; | 40 | }; |
@@ -65,9 +48,9 @@ impl App { | |||
65 | self.habits.retain(|h| h.get_name() != name); | 48 | self.habits.retain(|h| h.get_name() != name); |
66 | } | 49 | } |
67 | 50 | ||
68 | pub fn set_mode(&mut self, set_mode: ViewMode) { | 51 | pub fn set_mode(&mut self, mode: ViewMode) { |
69 | if set_mode != self.view_mode { | 52 | if !self.habits.is_empty() { |
70 | self.view_mode = set_mode; | 53 | self.habits[self.focus].set_view_mode(mode); |
71 | } | 54 | } |
72 | } | 55 | } |
73 | 56 | ||
@@ -233,8 +216,8 @@ impl View for App { | |||
233 | } | 216 | } |
234 | 217 | ||
235 | offset = offset.map_x(|_| 0).map_y(|_| self.max_size().y - 2); | 218 | offset = offset.map_x(|_| 0).map_y(|_| self.max_size().y - 2); |
236 | printer.print(offset, &self.status().1); // right | 219 | printer.print(offset, &self.status().1); // right status |
237 | printer.print(offset, &self.status().0); // left | 220 | printer.print(offset, &self.status().0); // left status |
238 | } | 221 | } |
239 | 222 | ||
240 | fn required_size(&mut self, _: Vec2) -> Vec2 { | 223 | fn required_size(&mut self, _: Vec2) -> Vec2 { |