Make DismissEvent a unit struct

Co-authored-by: Conrad <conrad@zed.dev>
This commit is contained in:
Max Brunsfeld 2023-11-29 09:42:54 -08:00
parent ac34229118
commit 233aac5573
11 changed files with 26 additions and 38 deletions

View file

@ -51,6 +51,6 @@ impl UpdateNotification {
} }
pub fn dismiss(&mut self, cx: &mut ViewContext<Self>) { pub fn dismiss(&mut self, cx: &mut ViewContext<Self>) {
cx.emit(DismissEvent::Dismiss); cx.emit(DismissEvent);
} }
} }

View file

@ -161,7 +161,7 @@ impl PickerDelegate for ContactFinderDelegate {
fn dismissed(&mut self, cx: &mut ViewContext<Picker<Self>>) { fn dismissed(&mut self, cx: &mut ViewContext<Picker<Self>>) {
//cx.emit(PickerEvent::Dismiss); //cx.emit(PickerEvent::Dismiss);
self.parent self.parent
.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) .update(cx, |_, cx| cx.emit(DismissEvent))
.log_err(); .log_err();
} }

View file

@ -267,7 +267,7 @@ impl PickerDelegate for CommandPaletteDelegate {
fn dismissed(&mut self, cx: &mut ViewContext<Picker<Self>>) { fn dismissed(&mut self, cx: &mut ViewContext<Picker<Self>>) {
self.command_palette self.command_palette
.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) .update(cx, |_, cx| cx.emit(DismissEvent))
.log_err(); .log_err();
} }

View file

@ -687,9 +687,7 @@ impl PickerDelegate for FileFinderDelegate {
.log_err(); .log_err();
} }
} }
finder finder.update(&mut cx, |_, cx| cx.emit(DismissEvent)).ok()?;
.update(&mut cx, |_, cx| cx.emit(DismissEvent::Dismiss))
.ok()?;
Some(()) Some(())
}) })
@ -700,7 +698,7 @@ impl PickerDelegate for FileFinderDelegate {
fn dismissed(&mut self, cx: &mut ViewContext<Picker<FileFinderDelegate>>) { fn dismissed(&mut self, cx: &mut ViewContext<Picker<FileFinderDelegate>>) {
self.file_finder self.file_finder
.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) .update(cx, |_, cx| cx.emit(DismissEvent))
.log_err(); .log_err();
} }

View file

@ -90,7 +90,7 @@ impl GoToLine {
) { ) {
match event { match event {
// todo!() this isn't working... // 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), editor::EditorEvent::BufferEdited { .. } => self.highlight_current_line(cx),
_ => {} _ => {}
} }
@ -125,7 +125,7 @@ impl GoToLine {
} }
fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext<Self>) { fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext<Self>) {
cx.emit(DismissEvent::Dismiss); cx.emit(DismissEvent);
} }
fn confirm(&mut self, _: &menu::Confirm, cx: &mut ViewContext<Self>) { fn confirm(&mut self, _: &menu::Confirm, cx: &mut ViewContext<Self>) {
@ -142,7 +142,7 @@ impl GoToLine {
self.prev_scroll_position.take(); self.prev_scroll_position.take();
} }
cx.emit(DismissEvent::Dismiss); cx.emit(DismissEvent);
} }
} }

View file

@ -325,8 +325,7 @@ impl VisualContext for AsyncWindowContext {
where where
V: crate::ManagedView, V: crate::ManagedView,
{ {
self.window.update(self, |_, cx| { self.window
view.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss)) .update(self, |_, cx| view.update(cx, |_, cx| cx.emit(DismissEvent)))
})
} }
} }

View file

@ -611,7 +611,7 @@ impl<'a> VisualContext for VisualTestContext<'a> {
{ {
self.window self.window
.update(self.cx, |_, cx| { .update(self.cx, |_, cx| {
view.update(cx, |_, cx| cx.emit(crate::DismissEvent::Dismiss)) view.update(cx, |_, cx| cx.emit(crate::DismissEvent))
}) })
.unwrap() .unwrap()
} }

View file

@ -197,9 +197,7 @@ pub trait ManagedView: FocusableView + EventEmitter<DismissEvent> {}
impl<M: FocusableView + EventEmitter<DismissEvent>> ManagedView for M {} impl<M: FocusableView + EventEmitter<DismissEvent>> ManagedView for M {}
pub enum DismissEvent { pub struct DismissEvent;
Dismiss,
}
// Holds the state for a specific window. // Holds the state for a specific window.
pub struct Window { pub struct Window {
@ -1701,7 +1699,7 @@ impl VisualContext for WindowContext<'_> {
where where
V: ManagedView, 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 where
V: ManagedView, V: ManagedView,
{ {
self.defer(|_, cx| cx.emit(DismissEvent::Dismiss)) self.defer(|_, cx| cx.emit(DismissEvent))
} }
pub fn listener<E>( pub fn listener<E>(

View file

@ -448,11 +448,9 @@ impl ProjectPanel {
}); });
cx.focus_view(&context_menu); cx.focus_view(&context_menu);
let subscription = cx.subscribe(&context_menu, |this, _, event, cx| match event { let subscription = cx.subscribe(&context_menu, |this, _, _: &DismissEvent, cx| {
DismissEvent::Dismiss => {
this.context_menu.take(); this.context_menu.take();
cx.notify(); cx.notify();
}
}); });
self.context_menu = Some((context_menu, position, subscription)); self.context_menu = Some((context_menu, position, subscription));
} }

View file

@ -94,11 +94,11 @@ impl ContextMenu {
{ {
(handler)(cx) (handler)(cx)
} }
cx.emit(DismissEvent::Dismiss); cx.emit(DismissEvent);
} }
pub fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext<Self>) { pub fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext<Self>) {
cx.emit(DismissEvent::Dismiss); cx.emit(DismissEvent);
} }
fn select_first(&mut self, _: &SelectFirst, cx: &mut ViewContext<Self>) { fn select_first(&mut self, _: &SelectFirst, cx: &mut ViewContext<Self>) {
@ -181,8 +181,7 @@ impl Render for ContextMenu {
key_binding, key_binding,
} => { } => {
let callback = callback.clone(); let callback = callback.clone();
let dismiss = let dismiss = cx.listener(|_, _, cx| cx.emit(DismissEvent));
cx.listener(|_, _, cx| cx.emit(DismissEvent::Dismiss));
ListItem::new(entry.clone()) ListItem::new(entry.clone())
.child( .child(
@ -348,11 +347,9 @@ impl<M: ManagedView> Element for MenuHandle<M> {
let new_menu = (builder)(cx); let new_menu = (builder)(cx);
let menu2 = menu.clone(); let menu2 = menu.clone();
cx.subscribe(&new_menu, move |_modal, e, cx| match e { cx.subscribe(&new_menu, move |_modal, _: &DismissEvent, cx| {
&DismissEvent::Dismiss => {
*menu2.borrow_mut() = None; *menu2.borrow_mut() = None;
cx.notify(); cx.notify();
}
}) })
.detach(); .detach();
cx.focus_view(&new_menu); cx.focus_view(&new_menu);

View file

@ -106,10 +106,8 @@ impl Workspace {
let notification = build_notification(cx); let notification = build_notification(cx);
cx.subscribe( cx.subscribe(
&notification, &notification,
move |this, handle, event: &DismissEvent, cx| match event { move |this, handle, event: &DismissEvent, cx| {
DismissEvent::Dismiss => {
this.dismiss_notification_internal(type_id, id, cx); this.dismiss_notification_internal(type_id, id, cx);
}
}, },
) )
.detach(); .detach();
@ -260,7 +258,7 @@ pub mod simple_message_notification {
} }
pub fn dismiss(&mut self, cx: &mut ViewContext<Self>) { pub fn dismiss(&mut self, cx: &mut ViewContext<Self>) {
cx.emit(DismissEvent::Dismiss); cx.emit(DismissEvent);
} }
} }