From f4a91acffa87955665b706fbf212fff7b34745f3 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sun, 8 Oct 2023 00:30:30 +0200 Subject: [PATCH] Fix search bug --- src/home_page.rs | 20 ++++++++++++++------ src/search_entry.rs | 2 ++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/home_page.rs b/src/home_page.rs index 4371f1b..354a9de 100644 --- a/src/home_page.rs +++ b/src/home_page.rs @@ -114,12 +114,20 @@ impl MusicusHomePage { fn select(&self, search_entry: &MusicusSearchEntry) { let imp = self.imp(); - if let Some(person) = imp.persons.borrow().first() { - search_entry.add_tag(Tag::Person(person.clone())); - } else if let Some(ensemble) = imp.ensembles.borrow().first() { - search_entry.add_tag(Tag::Ensemble(ensemble.clone())); - } else if let Some(work) = imp.works.borrow().first() { - search_entry.add_tag(Tag::Work(work.clone())); + let (person, ensemble, work) = { + ( + imp.persons.borrow().first().cloned(), + imp.ensembles.borrow().first().cloned(), + imp.works.borrow().first().cloned(), + ) + }; + + if let Some(person) = person { + search_entry.add_tag(Tag::Person(person)); + } else if let Some(ensemble) = ensemble { + search_entry.add_tag(Tag::Ensemble(ensemble)); + } else if let Some(work) = work { + search_entry.add_tag(Tag::Work(work)); } } diff --git a/src/search_entry.rs b/src/search_entry.rs index c5a5709..a28ac0e 100644 --- a/src/search_entry.rs +++ b/src/search_entry.rs @@ -141,6 +141,7 @@ impl MusicusSearchEntry { } self.imp().text.set_text(""); + self.emit_by_name::<()>("query-changed", &[]); } pub fn add_tag(&self, tag: Tag) { @@ -148,6 +149,7 @@ impl MusicusSearchEntry { let tag = MusicusSearchTag::new(tag); self.imp().tags_box.append(&tag); self.imp().tags.borrow_mut().push(tag); + self.emit_by_name::<()>("query-changed", &[]); } pub fn query(&self) -> LibraryQuery {