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>) {
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>>) {
//cx.emit(PickerEvent::Dismiss);
self.parent
.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss))
.update(cx, |_, cx| cx.emit(DismissEvent))
.log_err();
}

View file

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

View file

@ -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<Picker<FileFinderDelegate>>) {
self.file_finder
.update(cx, |_, cx| cx.emit(DismissEvent::Dismiss))
.update(cx, |_, cx| cx.emit(DismissEvent))
.log_err();
}

View file

@ -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<Self>) {
cx.emit(DismissEvent::Dismiss);
cx.emit(DismissEvent);
}
fn confirm(&mut self, _: &menu::Confirm, cx: &mut ViewContext<Self>) {
@ -142,7 +142,7 @@ impl GoToLine {
self.prev_scroll_position.take();
}
cx.emit(DismissEvent::Dismiss);
cx.emit(DismissEvent);
}
}

View file

@ -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)))
}
}

View file

@ -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()
}

View file

@ -197,9 +197,7 @@ pub trait ManagedView: FocusableView + EventEmitter<DismissEvent> {}
impl<M: FocusableView + EventEmitter<DismissEvent>> 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<E>(

View file

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

View file

@ -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<Self>) {
cx.emit(DismissEvent::Dismiss);
cx.emit(DismissEvent);
}
fn select_first(&mut self, _: &SelectFirst, cx: &mut ViewContext<Self>) {
@ -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<M: ManagedView> Element for MenuHandle<M> {
let new_menu = (builder)(cx);
let menu2 = menu.clone();
cx.subscribe(&new_menu, move |_modal, e, cx| match e {
&DismissEvent::Dismiss => {
cx.subscribe(&new_menu, move |_modal, _: &DismissEvent, cx| {
*menu2.borrow_mut() = None;
cx.notify();
}
})
.detach();
cx.focus_view(&new_menu);

View file

@ -106,10 +106,8 @@ impl Workspace {
let notification = build_notification(cx);
cx.subscribe(
&notification,
move |this, handle, event: &DismissEvent, cx| match event {
DismissEvent::Dismiss => {
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<Self>) {
cx.emit(DismissEvent::Dismiss);
cx.emit(DismissEvent);
}
}