use disposableStore

This commit is contained in:
meganrogge 2024-04-01 14:11:08 -07:00
parent ae2fe7d085
commit 7b2d02766c
No known key found for this signature in database
GPG key ID: AA74638D4878183D
2 changed files with 11 additions and 5 deletions

View file

@ -30,6 +30,7 @@ import { openContextMenu } from 'vs/workbench/contrib/terminal/browser/terminalC
import { ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService'; import { ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService';
import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService'; import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService';
import { IBaseActionViewItemOptions } from 'vs/base/browser/ui/actionbar/actionViewItems'; import { IBaseActionViewItemOptions } from 'vs/base/browser/ui/actionbar/actionViewItems';
import { DisposableStore } from 'vs/base/common/lifecycle';
export class TerminalEditor extends EditorPane { export class TerminalEditor extends EditorPane {
@ -46,6 +47,8 @@ export class TerminalEditor extends EditorPane {
private _cancelContextMenu: boolean = false; private _cancelContextMenu: boolean = false;
private _disposableStore = this._register(new DisposableStore());
constructor( constructor(
group: IEditorGroup, group: IEditorGroup,
@ITelemetryService telemetryService: ITelemetryService, @ITelemetryService telemetryService: ITelemetryService,
@ -224,10 +227,11 @@ export class TerminalEditor extends EditorPane {
* Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable * Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable
*/ */
private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void { private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void {
this._disposableStore.clear();
if (dropdownAction instanceof Action) { if (dropdownAction instanceof Action) {
this._register(dropdownAction); this._disposableStore.add(dropdownAction);
} }
dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._register(a)); dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._disposableStore.add(a));
} }
private _getDefaultProfileName(): string { private _getDefaultProfileName(): string {

View file

@ -33,7 +33,7 @@ import { renderLabelWithIcons } from 'vs/base/browser/ui/iconLabel/iconLabels';
import { getColorForSeverity } from 'vs/workbench/contrib/terminal/browser/terminalStatusList'; import { getColorForSeverity } from 'vs/workbench/contrib/terminal/browser/terminalStatusList';
import { createAndFillInContextMenuActions, MenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { createAndFillInContextMenuActions, MenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem';
import { DropdownWithPrimaryActionViewItem } from 'vs/platform/actions/browser/dropdownWithPrimaryActionViewItem'; import { DropdownWithPrimaryActionViewItem } from 'vs/platform/actions/browser/dropdownWithPrimaryActionViewItem';
import { dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { DisposableStore, dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri'; import { URI } from 'vs/base/common/uri';
import { ColorScheme } from 'vs/platform/theme/common/theme'; import { ColorScheme } from 'vs/platform/theme/common/theme';
import { getColorClass, getUriClasses } from 'vs/workbench/contrib/terminal/browser/terminalIcon'; import { getColorClass, getUriClasses } from 'vs/workbench/contrib/terminal/browser/terminalIcon';
@ -58,6 +58,7 @@ export class TerminalViewPane extends ViewPane {
private readonly _dropdownMenu: IMenu; private readonly _dropdownMenu: IMenu;
private readonly _singleTabMenu: IMenu; private readonly _singleTabMenu: IMenu;
private _viewShowing: IContextKey<boolean>; private _viewShowing: IContextKey<boolean>;
private _disposableStore = this._register(new DisposableStore());
constructor( constructor(
options: IViewPaneOptions, options: IViewPaneOptions,
@ -287,10 +288,11 @@ export class TerminalViewPane extends ViewPane {
* Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable * Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable
*/ */
private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void { private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void {
this._disposableStore.clear();
if (dropdownAction instanceof Action) { if (dropdownAction instanceof Action) {
this._register(dropdownAction); this._disposableStore.add(dropdownAction);
} }
dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._register(a)); dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._disposableStore.add(a));
} }
private _getDefaultProfileName(): string { private _getDefaultProfileName(): string {