mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-07 13:27:45 +03:00
Remove OpenProjectEntryInPane
internal action
This commit is contained in:
parent
b6437d6d9e
commit
20e38d2def
@ -10,9 +10,7 @@ use gpui::{
|
|||||||
use project::ProjectEntryId;
|
use project::ProjectEntryId;
|
||||||
use settings::Settings;
|
use settings::Settings;
|
||||||
|
|
||||||
use crate::{
|
use crate::{Pane, SplitDirection, SplitWithItem, SplitWithProjectEntry, Workspace};
|
||||||
OpenProjectEntryInPane, Pane, SplitDirection, SplitWithItem, SplitWithProjectEntry, Workspace,
|
|
||||||
};
|
|
||||||
|
|
||||||
use super::DraggedItem;
|
use super::DraggedItem;
|
||||||
|
|
||||||
@ -155,10 +153,24 @@ pub fn handle_dropped_item<V: View>(
|
|||||||
cx.propagate_event();
|
cx.propagate_event();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Action::Open(project_entry) => cx.dispatch_action(OpenProjectEntryInPane {
|
Action::Open(project_entry) => {
|
||||||
pane: pane.clone(),
|
let pane = pane.clone();
|
||||||
project_entry,
|
cx.window_context().defer(move |cx| {
|
||||||
}),
|
if let Some(pane) = pane.upgrade(cx) {
|
||||||
|
if let Some(workspace) = pane.read(cx).workspace.upgrade(cx) {
|
||||||
|
workspace.update(cx, |workspace, cx| {
|
||||||
|
if let Some(path) =
|
||||||
|
workspace.project.read(cx).path_for_entry(project_entry, cx)
|
||||||
|
{
|
||||||
|
workspace
|
||||||
|
.open_path(path, Some(pane.downgrade()), true, cx)
|
||||||
|
.detach_and_log_err(cx);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,12 +164,6 @@ pub struct SplitWithProjectEntry {
|
|||||||
project_entry: ProjectEntryId,
|
project_entry: ProjectEntryId,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, PartialEq)]
|
|
||||||
pub struct OpenProjectEntryInPane {
|
|
||||||
pane: WeakViewHandle<Pane>,
|
|
||||||
project_entry: ProjectEntryId,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct Toast {
|
pub struct Toast {
|
||||||
id: usize,
|
id: usize,
|
||||||
msg: Cow<'static, str>,
|
msg: Cow<'static, str>,
|
||||||
@ -232,7 +226,6 @@ impl_internal_actions!(
|
|||||||
RemoveWorktreeFromProject,
|
RemoveWorktreeFromProject,
|
||||||
SplitWithItem,
|
SplitWithItem,
|
||||||
SplitWithProjectEntry,
|
SplitWithProjectEntry,
|
||||||
OpenProjectEntryInPane,
|
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
impl_actions!(workspace, [ActivatePane]);
|
impl_actions!(workspace, [ActivatePane]);
|
||||||
@ -374,27 +367,6 @@ pub fn init(app_state: Arc<AppState>, cx: &mut AppContext) {
|
|||||||
cx.add_action(Workspace::split_pane_with_item);
|
cx.add_action(Workspace::split_pane_with_item);
|
||||||
cx.add_async_action(Workspace::split_pane_with_project_entry);
|
cx.add_async_action(Workspace::split_pane_with_project_entry);
|
||||||
|
|
||||||
cx.add_async_action(
|
|
||||||
|workspace: &mut Workspace,
|
|
||||||
OpenProjectEntryInPane {
|
|
||||||
pane,
|
|
||||||
project_entry,
|
|
||||||
}: &_,
|
|
||||||
cx| {
|
|
||||||
workspace
|
|
||||||
.project
|
|
||||||
.read(cx)
|
|
||||||
.path_for_entry(*project_entry, cx)
|
|
||||||
.map(|path| {
|
|
||||||
let task = workspace.open_path(path, Some(pane.clone()), true, cx);
|
|
||||||
cx.foreground().spawn(async move {
|
|
||||||
task.await?;
|
|
||||||
Ok(())
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
cx.add_action(|_: &mut Workspace, _: &install_cli::Install, cx| {
|
cx.add_action(|_: &mut Workspace, _: &install_cli::Install, cx| {
|
||||||
cx.spawn(|workspace, mut cx| async move {
|
cx.spawn(|workspace, mut cx| async move {
|
||||||
let err = install_cli::install_cli(&cx)
|
let err = install_cli::install_cli(&cx)
|
||||||
|
Loading…
Reference in New Issue
Block a user