提交 03432806 编写于 作者: S Sandeep Somavarapu

Use URIs for custom view item's icons

上级 a3b6f18a
...@@ -426,7 +426,7 @@ class ExtHostTreeView<T> extends Disposable { ...@@ -426,7 +426,7 @@ class ExtHostTreeView<T> extends Disposable {
return handle; return handle;
} }
private getLightIconPath(extensionTreeItem: vscode.TreeItem): string { private getLightIconPath(extensionTreeItem: vscode.TreeItem): URI {
if (extensionTreeItem.iconPath && !(extensionTreeItem.iconPath instanceof ThemeIcon)) { if (extensionTreeItem.iconPath && !(extensionTreeItem.iconPath instanceof ThemeIcon)) {
if (typeof extensionTreeItem.iconPath === 'string' if (typeof extensionTreeItem.iconPath === 'string'
|| extensionTreeItem.iconPath instanceof URI) { || extensionTreeItem.iconPath instanceof URI) {
...@@ -437,18 +437,18 @@ class ExtHostTreeView<T> extends Disposable { ...@@ -437,18 +437,18 @@ class ExtHostTreeView<T> extends Disposable {
return void 0; return void 0;
} }
private getDarkIconPath(extensionTreeItem: vscode.TreeItem): string { private getDarkIconPath(extensionTreeItem: vscode.TreeItem): URI {
if (extensionTreeItem.iconPath && !(extensionTreeItem.iconPath instanceof ThemeIcon) && extensionTreeItem.iconPath['dark']) { if (extensionTreeItem.iconPath && !(extensionTreeItem.iconPath instanceof ThemeIcon) && extensionTreeItem.iconPath['dark']) {
return this.getIconPath(extensionTreeItem.iconPath['dark']); return this.getIconPath(extensionTreeItem.iconPath['dark']);
} }
return void 0; return void 0;
} }
private getIconPath(iconPath: string | URI): string { private getIconPath(iconPath: string | URI): URI {
if (iconPath instanceof URI) { if (iconPath instanceof URI) {
return iconPath.toString(); return iconPath;
} }
return URI.file(iconPath).toString(); return URI.file(iconPath);
} }
private addNodeToCache(element: T, node: TreeNode): void { private addNodeToCache(element: T, node: TreeNode): void {
......
...@@ -496,6 +496,7 @@ class TreeRenderer implements IRenderer { ...@@ -496,6 +496,7 @@ class TreeRenderer implements IRenderer {
const resource = node.resourceUri ? URI.revive(node.resourceUri) : null; const resource = node.resourceUri ? URI.revive(node.resourceUri) : null;
const label = node.label ? node.label : resource ? basename(resource.path) : ''; const label = node.label ? node.label : resource ? basename(resource.path) : '';
const icon = this.themeService.getTheme().type === LIGHT ? node.icon : node.iconDark; const icon = this.themeService.getTheme().type === LIGHT ? node.icon : node.iconDark;
const iconUrl = icon ? URI.revive(icon) : null;
const title = node.tooltip ? node.tooltip : resource ? void 0 : label; const title = node.tooltip ? node.tooltip : resource ? void 0 : label;
// reset // reset
...@@ -504,13 +505,13 @@ class TreeRenderer implements IRenderer { ...@@ -504,13 +505,13 @@ class TreeRenderer implements IRenderer {
if (resource || node.themeIcon) { if (resource || node.themeIcon) {
const fileDecorations = this.configurationService.getValue<{ colors: boolean, badges: boolean }>('explorer.decorations'); const fileDecorations = this.configurationService.getValue<{ colors: boolean, badges: boolean }>('explorer.decorations');
templateData.resourceLabel.setLabel({ name: label, resource: resource ? resource : URI.parse('missing:_icon_resource') }, { fileKind: this.getFileKind(node), title, hideIcon: !!icon, fileDecorations, extraClasses: ['custom-view-tree-node-item-resourceLabel'] }); templateData.resourceLabel.setLabel({ name: label, resource: resource ? resource : URI.parse('missing:_icon_resource') }, { fileKind: this.getFileKind(node), title, hideIcon: !!iconUrl, fileDecorations, extraClasses: ['custom-view-tree-node-item-resourceLabel'] });
} else { } else {
templateData.resourceLabel.setLabel({ name: label }, { title, hideIcon: true, extraClasses: ['custom-view-tree-node-item-resourceLabel'] }); templateData.resourceLabel.setLabel({ name: label }, { title, hideIcon: true, extraClasses: ['custom-view-tree-node-item-resourceLabel'] });
} }
templateData.icon.style.backgroundImage = icon ? `url('${icon}')` : ''; templateData.icon.style.backgroundImage = iconUrl ? `url('${iconUrl}')` : '';
DOM.toggleClass(templateData.icon, 'custom-view-tree-node-item-icon', !!icon); DOM.toggleClass(templateData.icon, 'custom-view-tree-node-item-icon', !!iconUrl);
templateData.actionBar.context = (<TreeViewItemHandleArg>{ $treeViewId: this.treeViewId, $treeItemHandle: node.handle }); templateData.actionBar.context = (<TreeViewItemHandleArg>{ $treeViewId: this.treeViewId, $treeItemHandle: node.handle });
templateData.actionBar.push(this.menus.getResourceActions(node), { icon: true, label: false }); templateData.actionBar.push(this.menus.getResourceActions(node), { icon: true, label: false });
......
...@@ -273,9 +273,9 @@ export interface ITreeItem { ...@@ -273,9 +273,9 @@ export interface ITreeItem {
label?: string; label?: string;
icon?: string; icon?: UriComponents;
iconDark?: string; iconDark?: UriComponents;
themeIcon?: ThemeIcon; themeIcon?: ThemeIcon;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册