From 1abecb20ffb5245f3f5727a38a694b687d94ff09 Mon Sep 17 00:00:00 2001 From: Leopold Luley Date: Mon, 7 Oct 2024 13:51:13 +0200 Subject: [PATCH] Remember search_pdf and search_office across restarts. --- gnome/src/config/imp.rs | 25 +++++++++++++++++++++++++ gnome/src/search_window/imp.rs | 12 ++++++++++++ 2 files changed, 37 insertions(+) diff --git a/gnome/src/config/imp.rs b/gnome/src/config/imp.rs index 8431d80..56fff69 100644 --- a/gnome/src/config/imp.rs +++ b/gnome/src/config/imp.rs @@ -15,6 +15,11 @@ pub struct Config { #[property(get, set = Self::set_window_maximized, default = false)] window_maximized: Cell, + #[property(get, set = Self::set_search_pdf, default = false)] + search_pdf: Cell, + #[property(get, set = Self::set_search_office, default = false)] + search_office: Cell, + config: OnceCell, } @@ -36,6 +41,18 @@ impl Config { let _ = config.set("window_maximized", maximized); self.window_maximized.set(maximized); } + + fn set_search_pdf(&self, search_pdf: bool) { + let config = self.config.get().unwrap(); + let _ = config.set("search_pdf", search_pdf); + self.search_pdf.set(search_pdf); + } + + fn set_search_office(&self, search_office: bool) { + let config = self.config.get().unwrap(); + let _ = config.set("search_office", search_office); + self.search_office.set(search_office); + } } // Basic declaration of our type for the GObject type system @@ -62,6 +79,14 @@ impl ObjectImpl for Config { self.window_maximized.set(window_maximized); } + if let Ok(search_pdf) = config.get("search_pdf") { + self.search_pdf.set(search_pdf); + } + + if let Ok(search_office) = config.get("search_office") { + self.search_office.set(search_office); + } + let _ = self.config.set(config); } } diff --git a/gnome/src/search_window/imp.rs b/gnome/src/search_window/imp.rs index d9dcb2f..37efe3e 100644 --- a/gnome/src/search_window/imp.rs +++ b/gnome/src/search_window/imp.rs @@ -214,6 +214,18 @@ impl ObjectImpl for SearchWindow { .sync_create() .build(); + self.config + .bind_property("search_pdf", obj.as_ref(), "search_pdf") + .bidirectional() + .sync_create() + .build(); + + self.config + .bind_property("search_office", obj.as_ref(), "search_office") + .bidirectional() + .sync_create() + .build(); + obj.results().connect_items_changed(clone!( #[weak] obj,