image viewer: Allow dropping images on pane (#21803)
Partially addresses #21484 https://github.com/user-attachments/assets/777da5de-15c3-4af3-a597-1835c0155326 Release Notes: - Support opening images by dropping them onto a pane
This commit is contained in:
parent
96499b7b25
commit
58f9301253
2 changed files with 16 additions and 7 deletions
|
@ -108,10 +108,11 @@ impl Item for ImageView {
|
||||||
params.text_color()
|
params.text_color()
|
||||||
};
|
};
|
||||||
|
|
||||||
let title = project_path
|
let title = self
|
||||||
.path
|
.image_item
|
||||||
.file_name()
|
.read(cx)
|
||||||
.unwrap_or_else(|| project_path.path.as_os_str())
|
.file
|
||||||
|
.file_name(cx)
|
||||||
.to_string_lossy()
|
.to_string_lossy()
|
||||||
.to_string();
|
.to_string();
|
||||||
Label::new(title)
|
Label::new(title)
|
||||||
|
@ -160,7 +161,7 @@ impl Item for ImageView {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn breadcrumbs_text_for_image(project: &Project, image: &ImageItem, cx: &AppContext) -> String {
|
fn breadcrumbs_text_for_image(project: &Project, image: &ImageItem, cx: &AppContext) -> String {
|
||||||
let path = image.path();
|
let path = image.file.file_name(cx);
|
||||||
if project.visible_worktrees(cx).count() <= 1 {
|
if project.visible_worktrees(cx).count() <= 1 {
|
||||||
return path.to_string_lossy().to_string();
|
return path.to_string_lossy().to_string();
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,9 +123,17 @@ impl ProjectItem for ImageItem {
|
||||||
let path = path.clone();
|
let path = path.clone();
|
||||||
let project = project.clone();
|
let project = project.clone();
|
||||||
|
|
||||||
let ext = path
|
let worktree_abs_path = project
|
||||||
.path
|
.read(cx)
|
||||||
|
.worktree_for_id(path.worktree_id, cx)?
|
||||||
|
.read(cx)
|
||||||
|
.abs_path();
|
||||||
|
|
||||||
|
// Resolve the file extension from either the worktree path (if it's a single file)
|
||||||
|
// or from the project path's subpath.
|
||||||
|
let ext = worktree_abs_path
|
||||||
.extension()
|
.extension()
|
||||||
|
.or_else(|| path.path.extension())
|
||||||
.and_then(OsStr::to_str)
|
.and_then(OsStr::to_str)
|
||||||
.map(str::to_lowercase)
|
.map(str::to_lowercase)
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue