workspace: Add clear notifications command (#13320)
loczek
created 2 years ago
Release Notes:
- Added the `workspace: clear all notifications` command to clear
notifications
([#10761](https://github.com/zed-industries/zed/issues/10761))
https://github.com/zed-industries/zed/assets/30776250/36f2c3f3-5b5e-4f98-9418-8806ce311504
Change summary
crates/workspace/src/notifications.rs | 5 +++++
crates/workspace/src/workspace.rs | 6 ++++++
2 files changed, 11 insertions(+)
Detailed changes
@@ -191,6 +191,11 @@ impl Workspace {
self.dismiss_notification(id, cx);
}
+ pub fn clear_all_notifications(&mut self, cx: &mut ViewContext<Self>) {
+ self.notifications.clear();
+ cx.notify();
+ }
+
fn dismiss_notification_internal(&mut self, id: &NotificationId, cx: &mut ViewContext<Self>) {
self.notifications.retain(|(existing_id, _)| {
if existing_id == id {
@@ -115,6 +115,7 @@ actions!(
ActivateNextPane,
ActivatePreviousPane,
AddFolderToProject,
+ ClearAllNotifications,
CloseAllDocks,
CloseWindow,
Feedback,
@@ -3896,6 +3897,11 @@ impl Workspace {
workspace.close_all_docks(cx);
}),
)
+ .on_action(
+ cx.listener(|workspace: &mut Workspace, _: &ClearAllNotifications, cx| {
+ workspace.clear_all_notifications(cx);
+ }),
+ )
.on_action(cx.listener(Workspace::open))
.on_action(cx.listener(Workspace::close_window))
.on_action(cx.listener(Workspace::activate_pane_at_index))