From 0f05a52d429c41b538fa3b362cad3a54db04e5cd Mon Sep 17 00:00:00 2001 From: Ricky Kresslein Date: Thu, 3 Mar 2022 10:02:01 +0100 Subject: Added 'limit days shown' setting --- src/ui/preferences_window.rs | 30 +++++++++++++++++++++++++++++- src/ui/tasks_page.rs | 10 ++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) (limited to 'src/ui') 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, #[template_child] pub notify_of_idle_spin: TemplateChild, + + #[template_child] + pub task_group: TemplateChild, + #[template_child] + pub limit_tasks_expander: TemplateChild, + #[template_child] + pub limit_days_spin: TemplateChild, } #[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 -- cgit 1.4.1