Skip to content

Commit 85dda6d

Browse files
committed
Allow welcome content in custom views
Fixes microsoft#92143
1 parent c7be212 commit 85dda6d

3 files changed

Lines changed: 13 additions & 1 deletion

File tree

src/vs/workbench/browser/parts/views/customView.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export class CustomTreeViewPane extends ViewPane {
6767
this._register(this.treeView.onDidChangeTitle((newTitle) => this.updateTitle(newTitle)));
6868
this._register(toDisposable(() => this.treeView.setVisibility(false)));
6969
this._register(this.onDidChangeBodyVisibility(() => this.updateTreeVisibility()));
70+
this._register(this.treeView.onDidChangeWelcomeState(() => this._onDidChangeViewWelcomeState.fire()));
7071
this.updateTreeVisibility();
7172
}
7273

@@ -83,6 +84,10 @@ export class CustomTreeViewPane extends ViewPane {
8384
}
8485
}
8586

87+
shouldShowWelcome(): boolean {
88+
return (this.treeView.dataProvider === undefined) && (this.treeView.message === undefined);
89+
}
90+
8691
layoutBody(height: number, width: number): void {
8792
this.treeView.layout(height, width);
8893
}
@@ -151,6 +156,9 @@ export class CustomTreeView extends Disposable implements ITreeView {
151156
private readonly _onDidChangeActions: Emitter<void> = this._register(new Emitter<void>());
152157
readonly onDidChangeActions: Event<void> = this._onDidChangeActions.event;
153158

159+
private readonly _onDidChangeWelcomeState: Emitter<void> = this._register(new Emitter<void>());
160+
readonly onDidChangeWelcomeState: Event<void> = this._onDidChangeWelcomeState.event;
161+
154162
private readonly _onDidChangeTitle: Emitter<string> = this._register(new Emitter<string>());
155163
readonly onDidChangeTitle: Event<string> = this._onDidChangeTitle.event;
156164

@@ -223,6 +231,8 @@ export class CustomTreeView extends Disposable implements ITreeView {
223231
this._dataProvider = undefined;
224232
this.updateMessage();
225233
}
234+
235+
this._onDidChangeWelcomeState.fire();
226236
}
227237

228238
private _message: string | undefined;
@@ -233,6 +243,7 @@ export class CustomTreeView extends Disposable implements ITreeView {
233243
set message(message: string | undefined) {
234244
this._message = message;
235245
this.updateMessage();
246+
this._onDidChangeWelcomeState.fire();
236247
}
237248

238249
get title(): string {

src/vs/workbench/common/views.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,8 @@ export interface ITreeView extends IDisposable {
488488

489489
readonly onDidChangeTitle: Event<string>;
490490

491+
readonly onDidChangeWelcomeState: Event<void>;
492+
491493
refresh(treeItems?: ITreeItem[]): Promise<void>;
492494

493495
setVisibility(visible: boolean): void;

src/vs/workbench/contrib/welcome/common/viewsWelcomeExtensionPoint.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ const viewsWelcomeExtensionPointSchema = Object.freeze<IConfigurationPropertySch
4040
[ViewsWelcomeExtensionPointFields.view]: {
4141
type: 'string',
4242
description: nls.localize('contributes.viewsWelcome.view.view', "Target view identifier for this welcome content."),
43-
enum: Object.keys(ViewIdentifierMap),
4443
},
4544
[ViewsWelcomeExtensionPointFields.contents]: {
4645
type: 'string',

0 commit comments

Comments
 (0)