Compare commits

...

1 Commits

Author SHA1 Message Date
Ben Brandt
4ee0fa561a agent: Add action to close agent panel
Adds an action to close the Agent panel, as well as binds it to cmd-w when focused on the panel.
2025-05-09 12:00:16 +02:00
4 changed files with 16 additions and 4 deletions

View File

@@ -242,6 +242,7 @@
"ctrl-i": "agent::ToggleProfileSelector", "ctrl-i": "agent::ToggleProfileSelector",
"ctrl-alt-/": "agent::ToggleModelSelector", "ctrl-alt-/": "agent::ToggleModelSelector",
"ctrl-shift-a": "agent::ToggleContextPicker", "ctrl-shift-a": "agent::ToggleContextPicker",
"ctrl-w": "agent::Close",
"ctrl-shift-o": "agent::ToggleNavigationMenu", "ctrl-shift-o": "agent::ToggleNavigationMenu",
"ctrl-shift-i": "agent::ToggleOptionsMenu", "ctrl-shift-i": "agent::ToggleOptionsMenu",
"shift-escape": "agent::ExpandMessageEditor", "shift-escape": "agent::ExpandMessageEditor",

View File

@@ -288,6 +288,7 @@
"cmd-i": "agent::ToggleProfileSelector", "cmd-i": "agent::ToggleProfileSelector",
"cmd-alt-/": "agent::ToggleModelSelector", "cmd-alt-/": "agent::ToggleModelSelector",
"cmd-shift-a": "agent::ToggleContextPicker", "cmd-shift-a": "agent::ToggleContextPicker",
"cmd-w": "agent::Close",
"cmd-shift-o": "agent::ToggleNavigationMenu", "cmd-shift-o": "agent::ToggleNavigationMenu",
"cmd-shift-i": "agent::ToggleOptionsMenu", "cmd-shift-i": "agent::ToggleOptionsMenu",
"shift-escape": "agent::ExpandMessageEditor", "shift-escape": "agent::ExpandMessageEditor",

View File

@@ -85,6 +85,7 @@ actions!(
KeepAll, KeepAll,
Follow, Follow,
ResetTrialUpsell, ResetTrialUpsell,
Close,
] ]
); );

View File

@@ -62,10 +62,10 @@ use crate::thread_history::{EntryTimeFormat, PastContext, PastThread, ThreadHist
use crate::thread_store::ThreadStore; use crate::thread_store::ThreadStore;
use crate::ui::AgentOnboardingModal; use crate::ui::AgentOnboardingModal;
use crate::{ use crate::{
AddContextServer, AgentDiffPane, ContextStore, DeleteRecentlyOpenThread, ExpandMessageEditor, AddContextServer, AgentDiffPane, Close, ContextStore, DeleteRecentlyOpenThread,
Follow, InlineAssistant, NewTextThread, NewThread, OpenActiveThreadAsMarkdown, OpenAgentDiff, ExpandMessageEditor, Follow, InlineAssistant, NewTextThread, NewThread,
OpenHistory, ResetTrialUpsell, TextThreadStore, ThreadEvent, ToggleContextPicker, OpenActiveThreadAsMarkdown, OpenAgentDiff, OpenHistory, ResetTrialUpsell, TextThreadStore,
ToggleNavigationMenu, ToggleOptionsMenu, ThreadEvent, ToggleContextPicker, ToggleNavigationMenu, ToggleOptionsMenu,
}; };
const AGENT_PANEL_KEY: &str = "agent_panel"; const AGENT_PANEL_KEY: &str = "agent_panel";
@@ -156,6 +156,11 @@ pub fn init(cx: &mut App) {
}) })
.register_action(|_workspace, _: &ResetTrialUpsell, _window, cx| { .register_action(|_workspace, _: &ResetTrialUpsell, _window, cx| {
set_trial_upsell_dismissed(false, cx); set_trial_upsell_dismissed(false, cx);
})
.register_action(|workspace, _: &Close, window, cx| {
if let Some(panel) = workspace.panel::<AgentPanel>(cx) {
panel.update(cx, |panel, cx| panel.close_panel(window, cx));
}
}); });
}, },
) )
@@ -367,6 +372,10 @@ pub struct AgentPanel {
} }
impl AgentPanel { impl AgentPanel {
fn close_panel(&mut self, _window: &mut Window, cx: &mut Context<Self>) {
cx.emit(PanelEvent::Close);
}
fn serialize(&mut self, cx: &mut Context<Self>) { fn serialize(&mut self, cx: &mut Context<Self>) {
let width = self.width; let width = self.width;
self.pending_serialization = Some(cx.background_spawn(async move { self.pending_serialization = Some(cx.background_spawn(async move {