diff --git a/hammond-gtk/resources/gtk/prefs.ui b/hammond-gtk/resources/gtk/prefs.ui index e820d1c..0969ce5 100644 --- a/hammond-gtk/resources/gtk/prefs.ui +++ b/hammond-gtk/resources/gtk/prefs.ui @@ -9,17 +9,9 @@ 1 10 - - 1 - 100 - 1 - 1 - 10 - False Preferences - 500 dialog @@ -31,7 +23,7 @@ True True 480 - 250 + 200 True True @@ -51,7 +43,7 @@ True False start - 20 + 10 5 Appearance @@ -136,214 +128,6 @@ 1 - - - True - False - start - 20 - 5 - Refresh - - - False - True - 2 - - - - - 300 - True - False - 0 - in - - - True - False - - - True - False - none - False - - - 50 - True - True - False - False - - - True - False - 5 - 5 - 5 - 5 - - - True - False - Refresh at startup - - - False - True - 0 - - - - - True - True - center - - - False - False - end - 1 - - - - - - - - - 100 - 50 - True - True - False - False - - - True - False - 5 - 5 - 5 - 5 - - - True - False - Automatically Refresh - - - False - True - 0 - - - - - True - True - center - - - False - False - end - 1 - - - - - - - - - 100 - 50 - True - True - False - False - - - True - False - 5 - 5 - 5 - 5 - - - True - False - Every - - - False - True - 0 - - - - - True - False - - - True - True - digits - refresh_value_adj - 1 - 1 - - - False - True - 0 - - - - - True - False - - - False - True - 1 - - - - - - False - True - end - 1 - - - - - - - - - - - - - - - - False - True - 3 - - True @@ -356,7 +140,7 @@ False True - 4 + 2 @@ -460,7 +244,7 @@ False True - 5 + 3 @@ -477,7 +261,22 @@ - + + True + False + Prefrences + True + + + + + + 1 + 100 + 1 + 1 + 10 + diff --git a/hammond-gtk/src/prefs.rs b/hammond-gtk/src/prefs.rs index d87435a..e359fa1 100644 --- a/hammond-gtk/src/prefs.rs +++ b/hammond-gtk/src/prefs.rs @@ -9,10 +9,6 @@ use gtk::prelude::*; pub struct Prefs { dialog: gtk::Window, dark_toggle: gtk::Switch, - startup_toggle: gtk::Switch, - auto_toggle: gtk::Switch, - refresh_value: gtk::SpinButton, - refresh_type: gtk::ComboBox, cleanup_value: gtk::SpinButton, cleanup_type: gtk::ComboBox, } @@ -23,20 +19,12 @@ impl Default for Prefs { let dialog = builder.get_object("prefs").unwrap(); let dark_toggle = builder.get_object("dark_toggle").unwrap(); - let startup_toggle = builder.get_object("startup_toggle").unwrap(); - let auto_toggle = builder.get_object("auto_toggle").unwrap(); - let refresh_value = builder.get_object("refresh_value").unwrap(); - let refresh_type = builder.get_object("refresh_type").unwrap(); let cleanup_value = builder.get_object("cleanup_value").unwrap(); let cleanup_type = builder.get_object("cleanup_type").unwrap(); Prefs { dialog, dark_toggle, - startup_toggle, - auto_toggle, - refresh_value, - refresh_type, cleanup_value, cleanup_type, } @@ -58,58 +46,26 @@ impl Prefs { "active", gio::SettingsBindFlags::DEFAULT, ); - settings.bind( - "refresh-on-startup", - &self.startup_toggle, - "active", - gio::SettingsBindFlags::DEFAULT, - ); - settings.bind( - "refresh-interval", - &self.auto_toggle, - "active", - gio::SettingsBindFlags::DEFAULT, - ); - settings.bind( - "refresh-interval-time", - &self.refresh_value, - "value", - gio::SettingsBindFlags::DEFAULT, - ); settings.bind( "cleanup-age-time", &self.cleanup_value, "value", gio::SettingsBindFlags::DEFAULT, ); - let refresh_p = settings.get_string("refresh-interval-period").unwrap(); - let mut refresh_pos = 0; let cleanup_p = settings.get_string("cleanup-age-period").unwrap(); let mut cleanup_pos = 0; let store = gtk::ListStore::new(&[gtk::Type::String]); for (i, item) in ["Seconds", "Minutes", "Hours", "Days", "Weeks"].iter().enumerate() { let row: &[&ToValue] = &[item]; - if item.to_lowercase() == refresh_p { - refresh_pos = i; - } if item.to_lowercase() == cleanup_p { - cleanup_pos = i; + cleanup_pos = i as i32; } store.insert_with_values(None, &[0], &row); } - for combo in &[self.refresh_type.clone(), self.cleanup_type.clone()] { - combo.set_model(Some(&store)); - let renderer = gtk::CellRendererText::new(); - combo.pack_start(&renderer, true); - combo.add_attribute(&renderer, "text", 0); - } - self.refresh_type.set_active(refresh_pos); - self.refresh_type - .connect_changed(clone!(settings, store => move |combo| { - let value = store.get_value(&combo.get_active_iter().unwrap(), 0); - let value: &str = value.get().unwrap(); - settings.set_string("refresh-interval-period", &value.to_lowercase()); - })); + self.cleanup_type.set_model(Some(&store)); + let renderer = gtk::CellRendererText::new(); + self.cleanup_type.pack_start(&renderer, true); + self.cleanup_type.add_attribute(&renderer, "text", 0); self.cleanup_type.set_active(cleanup_pos); self.cleanup_type .connect_changed(clone!(settings, store => move |combo| {