From 804d1997f247d643dd7cf88742bf88d688054966 Mon Sep 17 00:00:00 2001 From: CharlesChen0823 Date: Thu, 29 Aug 2024 16:51:35 +0800 Subject: [PATCH] image_viewer: Fix image view tab icon lost (#17063) Closes #16989 Release Notes: - N/A --- crates/image_viewer/Cargo.toml | 2 ++ crates/image_viewer/src/image_viewer.rs | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/image_viewer/Cargo.toml b/crates/image_viewer/Cargo.toml index 70fe1426e2..a3d454b081 100644 --- a/crates/image_viewer/Cargo.toml +++ b/crates/image_viewer/Cargo.toml @@ -16,6 +16,8 @@ doctest = false anyhow.workspace = true db.workspace = true gpui.workspace = true +file_icons.workspace = true ui.workspace = true +settings.workspace = true workspace.workspace = true project.workspace = true diff --git a/crates/image_viewer/src/image_viewer.rs b/crates/image_viewer/src/image_viewer.rs index b43dabf55f..5435d19000 100644 --- a/crates/image_viewer/src/image_viewer.rs +++ b/crates/image_viewer/src/image_viewer.rs @@ -7,11 +7,13 @@ use gpui::{ use persistence::IMAGE_VIEWER; use ui::prelude::*; +use file_icons::FileIcons; use project::{Project, ProjectEntryId, ProjectPath}; +use settings::Settings; use std::{ffi::OsStr, path::PathBuf}; use workspace::{ item::{Item, ProjectItem, SerializableItem, TabContentParams}, - ItemId, Pane, Workspace, WorkspaceId, + ItemId, ItemSettings, Pane, Workspace, WorkspaceId, }; const IMAGE_VIEWER_KIND: &str = "ImageView"; @@ -85,6 +87,14 @@ impl Item for ImageView { .into_any_element() } + fn tab_icon(&self, cx: &WindowContext) -> Option { + ItemSettings::get_global(cx) + .file_icons + .then(|| FileIcons::get_icon(self.path.as_path(), cx)) + .flatten() + .map(|icon| Icon::from_path(icon)) + } + fn clone_on_split( &self, _workspace_id: Option,