diff options
author | Ricky Kresslein <rk@lakoliu.com> | 2022-03-03 10:02:01 +0100 |
---|---|---|
committer | Ricky Kresslein <rk@lakoliu.com> | 2022-03-03 10:02:01 +0100 |
commit | 0f05a52d429c41b538fa3b362cad3a54db04e5cd (patch) | |
tree | 2c7873ffc54a771b15cf21f96b4f8dd5fa3e1a6c /src/ui | |
parent | 8ea50db6fa4c36383a375db2f1e9ecb9a771d8c2 (diff) | |
download | Furtherance-0f05a52d429c41b538fa3b362cad3a54db04e5cd.tar.zst |
Added 'limit days shown' setting
Diffstat (limited to 'src/ui')
-rwxr-xr-x | src/ui/preferences_window.rs | 30 | ||||
-rwxr-xr-x | src/ui/tasks_page.rs | 10 |
2 files changed, 39 insertions, 1 deletions
diff --git a/src/ui/preferences_window.rs b/src/ui/preferences_window.rs index b6088ec..644ca22 100755 --- a/src/ui/preferences_window.rs +++ b/src/ui/preferences_window.rs @@ -41,6 +41,13 @@ mod imp { pub notify_of_idle_expander: TemplateChild<adw::ExpanderRow>, #[template_child] pub notify_of_idle_spin: TemplateChild<gtk::SpinButton>, + + #[template_child] + pub task_group: TemplateChild<adw::PreferencesGroup>, + #[template_child] + pub limit_tasks_expander: TemplateChild<adw::ExpanderRow>, + #[template_child] + pub limit_days_spin: TemplateChild<gtk::SpinButton>, } #[glib::object_subclass] @@ -119,7 +126,28 @@ impl FurPreferencesWindow { &*imp.notify_of_idle_spin, "value", ); - } + settings_manager::bind_property( + "limit-tasks", + &*imp.limit_tasks_expander, + "enable-expansion", + ); + + settings_manager::bind_property( + "limit-days", + &*imp.limit_days_spin, + "value", + ); + + imp.limit_tasks_expander.connect_enable_expansion_notify(move |_|{ + let window = FurtheranceWindow::default(); + window.reset_history_box(); + }); + + imp.limit_days_spin.connect_value_changed(move |_|{ + let window = FurtheranceWindow::default(); + window.reset_history_box(); + }); + } } diff --git a/src/ui/tasks_page.rs b/src/ui/tasks_page.rs index fbbaf0c..9f0aed3 100755 --- a/src/ui/tasks_page.rs +++ b/src/ui/tasks_page.rs @@ -22,6 +22,7 @@ use chrono::{DateTime, Local, Duration}; use crate::ui::FurTasksGroup; use crate::database; +use crate::settings_manager; mod imp { use super::*; @@ -122,6 +123,15 @@ impl FurTasksPage { tasks_sorted_by_day.push(same_date_list.clone()); } i += 1; + if settings_manager::get_bool("limit-tasks") { + if uniq_date_list.len() > settings_manager::get_int("limit-days") as usize { + if same_date_list.len() > 0 && i != len { + tasks_sorted_by_day.push(same_date_list.clone()); + } + uniq_date_list.pop(); + break; + } + } } // Create FurTasksGroups for all unique days |