From 026880739ce1407f8f70321063f21386573a183b Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sat, 17 Oct 2020 11:34:34 +0200 Subject: [PATCH] Allow only one selection in person screen --- src/screens/person_screen.rs | 2 ++ src/widgets/list.rs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/screens/person_screen.rs b/src/screens/person_screen.rs index a596a1c..a4ef0c3 100644 --- a/src/screens/person_screen.rs +++ b/src/screens/person_screen.rs @@ -102,6 +102,7 @@ impl PersonScreen { result .work_list .set_selected(clone!(@strong result => move |work| { + result.recording_list.clear_selection(); let navigator = result.navigator.borrow().clone(); if let Some(navigator) = navigator { navigator.push(WorkScreen::new(result.backend.clone(), work.clone())); @@ -111,6 +112,7 @@ impl PersonScreen { result .recording_list .set_selected(clone!(@strong result => move |recording| { + result.work_list.clear_selection(); let navigator = result.navigator.borrow().clone(); if let Some(navigator) = navigator { navigator.push(RecordingScreen::new(result.backend.clone(), recording.clone())); diff --git a/src/widgets/list.rs b/src/widgets/list.rs index a77549f..01216aa 100644 --- a/src/widgets/list.rs +++ b/src/widgets/list.rs @@ -87,4 +87,8 @@ where pub fn invalidate_filter(&self) { self.widget.invalidate_filter(); } + + pub fn clear_selection(&self) { + self.widget.unselect_all(); + } }