From 8ff56d28783d37d1e98173722d3acff02aed7f1a Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sun, 2 Mar 2025 15:46:23 +0100 Subject: [PATCH] window: Refresh view on library changes --- src/window.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/window.rs b/src/window.rs index 88e0a85..8f34e28 100644 --- a/src/window.rs +++ b/src/window.rs @@ -192,17 +192,26 @@ impl Window { fn load_library(&self, path: impl AsRef) { let library = Library::new(path); - self.imp().player.set_library(&library); + library.connect_changed(clone!( + #[weak(rename_to = obj)] + self, + move |_| obj.reset_view() + )); + + self.imp().player.set_library(&library); + self.imp().library.replace(Some(library)); + self.reset_view(); + } + + fn reset_view(&self) { let navigation = self.imp().navigation_view.get(); navigation.replace(&[SearchPage::new( &navigation, - &library, + self.imp().library.borrow().as_ref().unwrap(), &self.imp().player, LibraryQuery::default(), ) .into()]); - - self.imp().library.replace(Some(library)); } }