提交 819a9129 编写于 作者: B Benjamin Pasero

wip: do not set context to title area

上级 b3b35599
......@@ -10,7 +10,7 @@ import {IAction} from 'vs/base/common/actions';
import {prepareActions} from 'vs/workbench/browser/actionBarRegistry';
import errors = require('vs/base/common/errors');
import arrays = require('vs/base/common/arrays');
import {IEditorGroup, EditorInput} from 'vs/workbench/common/editor';
import {EditorInput} from 'vs/workbench/common/editor';
import DOM = require('vs/base/browser/dom');
import {ToolBar} from 'vs/base/browser/ui/toolbar/toolbar';
import {TitleControl} from 'vs/workbench/browser/parts/editor/titleControl';
......@@ -26,16 +26,9 @@ export class NoTabsTitleControl extends TitleControl {
private currentPrimaryEditorActionIds: string[] = [];
private currentSecondaryEditorActionIds: string[] = [];
public setContext(group: IEditorGroup): void {
super.setContext(group);
this.editorActionsToolbar.context = { group };
}
public create(parent: HTMLElement): void {
super.create(parent);
this.titleContainer = parent;
// Pin on double click
......@@ -111,7 +104,9 @@ export class NoTabsTitleControl extends TitleControl {
}
protected doRefresh(): void {
const group = this.context;
const group = this.context; // TODO
this.editorActionsToolbar.context = { group };
const editor = group && group.activeEditor;
if (!editor) {
this.titleLabel.innerText = '';
......
......@@ -195,11 +195,6 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti
private onStacksChanged(e: IStacksModelChangeEvent): void {
// Up to date context
POSITIONS.forEach(position => {
this.getTitleAreaControl(position).setContext(this.stacks.groupAt(position));
});
// Refresh / update if group is visible and has a position
const position = this.stacks.positionOfGroup(e.group);
if (position >= 0) {
......@@ -1017,9 +1012,13 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti
private createTitleControl(context: IEditorGroup, silo: Builder, container: Builder, instantiationService: IInstantiationService): void {
const useTabs = !!this.configurationService.getConfiguration<IWorkbenchEditorConfiguration>().workbench.editor.showTabs;
const titleAreaControl = instantiationService.createInstance<ITitleAreaControl>(useTabs ? TabsTitleControl : NoTabsTitleControl);
let titleAreaControl: TabsTitleControl | NoTabsTitleControl;
if (useTabs) {
titleAreaControl = instantiationService.createInstance(TabsTitleControl, () => this.stacks.groupAt(this.findPosition(container.getHTMLElement())));
} else {
titleAreaControl = instantiationService.createInstance(NoTabsTitleControl, () => this.stacks.groupAt(this.findPosition(container.getHTMLElement())));
}
titleAreaControl.create(container.getHTMLElement());
titleAreaControl.setContext(context);
titleAreaControl.refresh();
silo.child().setProperty(SideBySideEditorControl.TITLE_AREA_CONTROL_KEY, titleAreaControl); // associate with container
......
......@@ -49,6 +49,7 @@ export class TabsTitleControl extends TitleControl {
private currentSecondaryGroupActionIds: string[] = [];
constructor(
getContext:() => IEditorGroup,
@IContextMenuService contextMenuService: IContextMenuService,
@IInstantiationService instantiationService: IInstantiationService,
@IConfigurationService configurationService: IConfigurationService,
......@@ -60,7 +61,7 @@ export class TabsTitleControl extends TitleControl {
@IMessageService messageService: IMessageService,
@IMenuService menuService: IMenuService
) {
super(contextMenuService, instantiationService, configurationService, editorService, editorGroupService, keybindingService, telemetryService, messageService, menuService);
super(getContext, contextMenuService, instantiationService, configurationService, editorService, editorGroupService, keybindingService, telemetryService, messageService, menuService);
this.currentPrimaryGroupActionIds = [];
this.currentSecondaryGroupActionIds = [];
......@@ -68,15 +69,9 @@ export class TabsTitleControl extends TitleControl {
this.tabDisposeables = [];
}
public setContext(group: IEditorGroup): void {
super.setContext(group);
this.groupActionsToolbar.context = { group };
}
public create(parent: HTMLElement): void {
super.create(parent);
this.titleContainer = parent;
// Tabs Container
......@@ -223,7 +218,9 @@ export class TabsTitleControl extends TitleControl {
}
protected doRefresh(): void {
const group = this.context;
const group = this.context; // TODO
this.groupActionsToolbar.context = { group };
const editor = group && group.activeEditor;
if (!editor) {
this.clearTabs();
......
......@@ -41,7 +41,6 @@ export interface IToolbarActions {
}
export interface ITitleAreaControl {
setContext(group: IEditorGroup): void;
allowDragging(element: HTMLElement): boolean;
create(parent: HTMLElement): void;
getContainer(): HTMLElement;
......@@ -56,7 +55,6 @@ export abstract class TitleControl implements ITitleAreaControl {
private static draggedEditor: IEditorIdentifier;
protected stacks: IEditorStacksModel;
protected context: IEditorGroup;
protected toDispose: IDisposable[];
protected closeEditorAction: CloseEditorAction;
......@@ -83,6 +81,7 @@ export abstract class TitleControl implements ITitleAreaControl {
private contributedTitleBarMenu: IMenu;
constructor(
private getContext:() => IEditorGroup,
@IContextMenuService protected contextMenuService: IContextMenuService,
@IInstantiationService protected instantiationService: IInstantiationService,
@IConfigurationService protected configurationService: IConfigurationService,
......@@ -112,6 +111,10 @@ export abstract class TitleControl implements ITitleAreaControl {
this.registerListeners();
}
protected get context(): IEditorGroup {
return this.getContext();
}
public static getDraggedEditor(): IEditorIdentifier {
return TitleControl.draggedEditor;
}
......@@ -161,10 +164,6 @@ export abstract class TitleControl implements ITitleAreaControl {
this.refreshScheduled = false;
}
public setContext(group: IEditorGroup): void {
this.context = group;
}
public update(instant?: boolean): void {
if (instant) {
this.scheduler.cancel();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册