diff --git a/src/widgets/subscription_info_dialog.rs b/src/widgets/subscription_info_dialog.rs index 0e7be3a..08024ba 100644 --- a/src/widgets/subscription_info_dialog.rs +++ b/src/widgets/subscription_info_dialog.rs @@ -44,18 +44,23 @@ mod imp { fn constructed(&self) { self.parent_constructed(); let this = self.obj().clone(); + let sub = this.subscription().unwrap(); + let spin_row = self.retention_hours_spin_row.clone(); + let sub_clone = sub.clone(); - self.display_name_entry - .set_text(&this.subscription().unwrap().display_name()); - self.muted_switch_row - .set_active(this.subscription().unwrap().muted()); + self.display_name_entry.set_text(&sub.display_name()); + self.muted_switch_row.set_active(sub.muted()); self.retention_hours_spin_row - .set_value(this.subscription().unwrap().retention_hours() as f64); + .set_value(sub.retention_hours() as f64); let adj = self.retention_hours_spin_row.adjustment(); adj.set_upper(8760.0); adj.set_step_increment(1.0); adj.set_page_increment(24.0); + sub.connect_retention_hours_notify(move |_| { + spin_row.set_value(sub_clone.retention_hours() as f64); + }); + let debouncer = crate::async_utils::Debouncer::new(); self.display_name_entry.connect_changed({ move |entry| {