Project dropdown menu
This commit is contained in:
parent
d000ea9739
commit
888d3b3fd6
5 changed files with 95 additions and 10 deletions
|
@ -64,9 +64,26 @@ fn toggle(
|
|||
}))
|
||||
}
|
||||
|
||||
type RecentProjects = Picker<RecentProjectsDelegate>;
|
||||
pub fn build_recent_projects(
|
||||
workspace: WeakViewHandle<Workspace>,
|
||||
cx: &mut ViewContext<RecentProjects>,
|
||||
) -> RecentProjects {
|
||||
let workspaces = futures::executor::block_on(async {
|
||||
WORKSPACE_DB
|
||||
.recent_workspaces_on_disk()
|
||||
.await
|
||||
.unwrap_or_default()
|
||||
.into_iter()
|
||||
.map(|(_, location)| location)
|
||||
.collect()
|
||||
});
|
||||
Picker::new(RecentProjectsDelegate::new(workspace, workspaces), cx)
|
||||
.with_theme(|theme| theme.picker.clone())
|
||||
}
|
||||
|
||||
struct RecentProjectsDelegate {
|
||||
pub type RecentProjects = Picker<RecentProjectsDelegate>;
|
||||
|
||||
pub struct RecentProjectsDelegate {
|
||||
workspace: WeakViewHandle<Workspace>,
|
||||
workspace_locations: Vec<WorkspaceLocation>,
|
||||
selected_match_index: usize,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue