diff --git a/src/main.rs b/src/main.rs index f859cbe..1e0a89c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -223,7 +223,7 @@ fn on_link_clicked(param: &[glib::Value]) -> Option { let name = widget.widget_name(); let window_ref = unsafe { &G_HELLO_WINDOW.as_ref().unwrap().window }; - let preferences = unsafe { &G_HELLO_WINDOW.as_ref().unwrap().preferences["urls"] }; + let preferences = unsafe { G_HELLO_WINDOW.as_ref().unwrap().get_preferences("urls") }; let uri = preferences[name.as_str()].as_str().unwrap(); let _ = gtk::show_uri_on_window(Some(window_ref), uri, 0); @@ -236,7 +236,7 @@ fn on_link1_clicked(param: &[glib::Value]) -> Option { let name = widget.widget_name(); let window_ref = unsafe { &G_HELLO_WINDOW.as_ref().unwrap().window }; - let preferences = unsafe { &G_HELLO_WINDOW.as_ref().unwrap().preferences["urls"] }; + let preferences = unsafe { G_HELLO_WINDOW.as_ref().unwrap().get_preferences("urls") }; let uri = preferences[name.as_str()].as_str().unwrap(); let _ = gtk::show_uri_on_window(Some(window_ref), uri, 0); @@ -246,7 +246,7 @@ fn on_link1_clicked(param: &[glib::Value]) -> Option { fn on_delete_window(_param: &[glib::Value]) -> Option { let saved_json = &*G_SAVE_JSON.lock().unwrap(); - let preferences = unsafe { &G_HELLO_WINDOW.as_ref().unwrap().preferences["save_path"] }; + let preferences = unsafe { G_HELLO_WINDOW.as_ref().unwrap().get_preferences("save_path") }; write_json(preferences.as_str().unwrap(), saved_json); Some(false.to_value()) diff --git a/src/window.rs b/src/window.rs index 776adc3..33271fb 100644 --- a/src/window.rs +++ b/src/window.rs @@ -17,7 +17,7 @@ use unic_langid::LanguageIdentifier; pub struct HelloWindow { pub builder: gtk::Builder, pub window: gtk::Window, - pub preferences: serde_json::Value, + preferences: serde_json::Value, } impl HelloWindow { @@ -295,8 +295,8 @@ impl HelloWindow { } } - fn get_preferences(&self) -> &serde_json::Value { - &self.preferences + pub fn get_preferences(&self, entry: &str) -> &serde_json::Value { + &self.preferences[entry] } }