From 233aac557391cb92422b99e8dd9b93e836f22b56 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 29 Nov 2023 09:42:54 -0800 Subject: [PATCH] Make DismissEvent a unit struct Co-authored-by: Conrad --- crates/auto_update2/src/update_notification.rs | 2 +- .../collab_ui2/src/collab_panel/contact_finder.rs | 2 +- crates/command_palette2/src/command_palette.rs | 2 +- crates/file_finder2/src/file_finder.rs | 6 ++---- crates/go_to_line2/src/go_to_line.rs | 6 +++--- crates/gpui2/src/app/async_context.rs | 5 ++--- crates/gpui2/src/app/test_context.rs | 2 +- crates/gpui2/src/window.rs | 8 +++----- crates/project_panel2/src/project_panel.rs | 8 +++----- crates/ui2/src/components/context_menu.rs | 15 ++++++--------- crates/workspace2/src/notifications.rs | 8 +++----- 11 files changed, 26 insertions(+), 38 deletions(-) diff --git a/crates/auto_update2/src/update_notification.rs b/crates/auto_update2/src/update_notification.rs index d15d82e112e612143ef2aaff509965899818e95a..4a2efcf8076bb882a67c1f25b6300dd4cd48c1d1 100644 --- a/crates/auto_update2/src/update_notification.rs +++ b/crates/auto_update2/src/update_notification.rs @@ -51,6 +51,6 @@ impl UpdateNotification { } pub fn dismiss(&mut self, cx: &mut ViewContext) { - cx.emit(DismissEvent::Dismiss); + cx.emit(DismissEvent); } } diff --git a/crates/collab_ui2/src/collab_panel/contact_finder.rs b/crates/collab_ui2/src/collab_panel/contact_finder.rs index 48453ada72fe6acf3ebfa3f514af0ad03d300035..3701b070d923d822c643eb866674825f41af7fe7 100644 --- a/crates/collab_ui2/src/collab_panel/contact_finder.rs +++ b/crates/collab_ui2/src/collab_panel/contact_finder.rs @@ -161,7 +161,7 @@ impl PickerDelegate for ContactFinderDelegate { fn dismissed(&mut self, cx: &mut ViewContext>) { //cx.emit(PickerEvent::Dismiss); self.parent - .update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) + .update(cx, |_, cx| cx.emit(DismissEvent)) .log_err(); } diff --git a/crates/command_palette2/src/command_palette.rs b/crates/command_palette2/src/command_palette.rs index 076a2625a19f050c504418990501dd3a0d240814..cf39b4f29b0952de1859fa22e5aa68a87e46b1a2 100644 --- a/crates/command_palette2/src/command_palette.rs +++ b/crates/command_palette2/src/command_palette.rs @@ -267,7 +267,7 @@ impl PickerDelegate for CommandPaletteDelegate { fn dismissed(&mut self, cx: &mut ViewContext>) { self.command_palette - .update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) + .update(cx, |_, cx| cx.emit(DismissEvent)) .log_err(); } diff --git a/crates/file_finder2/src/file_finder.rs b/crates/file_finder2/src/file_finder.rs index 2f7b26dfb55c9a548eea0ab4fbc88a5544f29921..a24da580ebea9db1467f5936930558821fbd5220 100644 --- a/crates/file_finder2/src/file_finder.rs +++ b/crates/file_finder2/src/file_finder.rs @@ -687,9 +687,7 @@ impl PickerDelegate for FileFinderDelegate { .log_err(); } } - finder - .update(&mut cx, |_, cx| cx.emit(DismissEvent::Dismiss)) - .ok()?; + finder.update(&mut cx, |_, cx| cx.emit(DismissEvent)).ok()?; Some(()) }) @@ -700,7 +698,7 @@ impl PickerDelegate for FileFinderDelegate { fn dismissed(&mut self, cx: &mut ViewContext>) { self.file_finder - .update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) + .update(cx, |_, cx| cx.emit(DismissEvent)) .log_err(); } diff --git a/crates/go_to_line2/src/go_to_line.rs b/crates/go_to_line2/src/go_to_line.rs index c734281d22d731b0c55d617c8cf7f58e60077a45..5ad95c1f6ea6cf0fb49e185a044d8be7eaf383fe 100644 --- a/crates/go_to_line2/src/go_to_line.rs +++ b/crates/go_to_line2/src/go_to_line.rs @@ -90,7 +90,7 @@ impl GoToLine { ) { match event { // todo!() this isn't working... - editor::EditorEvent::Blurred => cx.emit(DismissEvent::Dismiss), + editor::EditorEvent::Blurred => cx.emit(DismissEvent), editor::EditorEvent::BufferEdited { .. } => self.highlight_current_line(cx), _ => {} } @@ -125,7 +125,7 @@ impl GoToLine { } fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext) { - cx.emit(DismissEvent::Dismiss); + cx.emit(DismissEvent); } fn confirm(&mut self, _: &menu::Confirm, cx: &mut ViewContext) { @@ -142,7 +142,7 @@ impl GoToLine { self.prev_scroll_position.take(); } - cx.emit(DismissEvent::Dismiss); + cx.emit(DismissEvent); } } diff --git a/crates/gpui2/src/app/async_context.rs b/crates/gpui2/src/app/async_context.rs index 11420bee69d2c8acd9cb179df5e68bcd7c3e9e5b..92ccc118f12826076621629a470dfda5c6a545d1 100644 --- a/crates/gpui2/src/app/async_context.rs +++ b/crates/gpui2/src/app/async_context.rs @@ -325,8 +325,7 @@ impl VisualContext for AsyncWindowContext { where V: crate::ManagedView, { - self.window.update(self, |_, cx| { - view.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) - }) + self.window + .update(self, |_, cx| view.update(cx, |_, cx| cx.emit(DismissEvent))) } } diff --git a/crates/gpui2/src/app/test_context.rs b/crates/gpui2/src/app/test_context.rs index 71bc8e3d8172713e1f2c0ab7d7f5ffb33fe4171e..9637720a67e78ba6f735534f924b4028d8d8c75f 100644 --- a/crates/gpui2/src/app/test_context.rs +++ b/crates/gpui2/src/app/test_context.rs @@ -611,7 +611,7 @@ impl<'a> VisualContext for VisualTestContext<'a> { { self.window .update(self.cx, |_, cx| { - view.update(cx, |_, cx| cx.emit(crate::DismissEvent::Dismiss)) + view.update(cx, |_, cx| cx.emit(crate::DismissEvent)) }) .unwrap() } diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index 862b2f5643e3b43e811588524c5c9a525192bce8..f8326e9df83ed82ce2b3c829a4d08467376bd844 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -197,9 +197,7 @@ pub trait ManagedView: FocusableView + EventEmitter {} impl> ManagedView for M {} -pub enum DismissEvent { - Dismiss, -} +pub struct DismissEvent; // Holds the state for a specific window. pub struct Window { @@ -1701,7 +1699,7 @@ impl VisualContext for WindowContext<'_> { where V: ManagedView, { - self.update_view(view, |_, cx| cx.emit(DismissEvent::Dismiss)) + self.update_view(view, |_, cx| cx.emit(DismissEvent)) } } @@ -2405,7 +2403,7 @@ impl<'a, V: 'static> ViewContext<'a, V> { where V: ManagedView, { - self.defer(|_, cx| cx.emit(DismissEvent::Dismiss)) + self.defer(|_, cx| cx.emit(DismissEvent)) } pub fn listener( diff --git a/crates/project_panel2/src/project_panel.rs b/crates/project_panel2/src/project_panel.rs index 88b9a9c28c9b9caeb95e801da9950d7612b4a4c2..594c2d8e034b79b31a99d3a76baa56bcb5a40adf 100644 --- a/crates/project_panel2/src/project_panel.rs +++ b/crates/project_panel2/src/project_panel.rs @@ -448,11 +448,9 @@ impl ProjectPanel { }); cx.focus_view(&context_menu); - let subscription = cx.subscribe(&context_menu, |this, _, event, cx| match event { - DismissEvent::Dismiss => { - this.context_menu.take(); - cx.notify(); - } + let subscription = cx.subscribe(&context_menu, |this, _, _: &DismissEvent, cx| { + this.context_menu.take(); + cx.notify(); }); self.context_menu = Some((context_menu, position, subscription)); } diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index b446bc5f3d1803805a2ab4b7d3ba3d4999da00e9..3772fb1bd2681ee635f3cc896568739062280c19 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -94,11 +94,11 @@ impl ContextMenu { { (handler)(cx) } - cx.emit(DismissEvent::Dismiss); + cx.emit(DismissEvent); } pub fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext) { - cx.emit(DismissEvent::Dismiss); + cx.emit(DismissEvent); } fn select_first(&mut self, _: &SelectFirst, cx: &mut ViewContext) { @@ -181,8 +181,7 @@ impl Render for ContextMenu { key_binding, } => { let callback = callback.clone(); - let dismiss = - cx.listener(|_, _, cx| cx.emit(DismissEvent::Dismiss)); + let dismiss = cx.listener(|_, _, cx| cx.emit(DismissEvent)); ListItem::new(entry.clone()) .child( @@ -348,11 +347,9 @@ impl Element for MenuHandle { let new_menu = (builder)(cx); let menu2 = menu.clone(); - cx.subscribe(&new_menu, move |_modal, e, cx| match e { - &DismissEvent::Dismiss => { - *menu2.borrow_mut() = None; - cx.notify(); - } + cx.subscribe(&new_menu, move |_modal, _: &DismissEvent, cx| { + *menu2.borrow_mut() = None; + cx.notify(); }) .detach(); cx.focus_view(&new_menu); diff --git a/crates/workspace2/src/notifications.rs b/crates/workspace2/src/notifications.rs index def13c518e17308ef91df1b5cc940c71beae6e77..eacf3d288a84fce1cb9526a9191786e3e4223f0d 100644 --- a/crates/workspace2/src/notifications.rs +++ b/crates/workspace2/src/notifications.rs @@ -106,10 +106,8 @@ impl Workspace { let notification = build_notification(cx); cx.subscribe( ¬ification, - move |this, handle, event: &DismissEvent, cx| match event { - DismissEvent::Dismiss => { - this.dismiss_notification_internal(type_id, id, cx); - } + move |this, handle, event: &DismissEvent, cx| { + this.dismiss_notification_internal(type_id, id, cx); }, ) .detach(); @@ -260,7 +258,7 @@ pub mod simple_message_notification { } pub fn dismiss(&mut self, cx: &mut ViewContext) { - cx.emit(DismissEvent::Dismiss); + cx.emit(DismissEvent); } }