Skip to content

Commit b01d675

Browse files
committed
remove open, pin from list/tree. bring that to workbench, configuration service aware
1 parent b4b6e66 commit b01d675

24 files changed

Lines changed: 169 additions & 273 deletions

File tree

src/vs/base/browser/ui/list/listPaging.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -176,18 +176,10 @@ export class PagedList<T> implements IDisposable {
176176
return Event.map(this.list.onDidChangeFocus, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
177177
}
178178

179-
get onDidOpen(): Event<IListEvent<T>> {
180-
return Event.map(this.list.onDidOpen, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
181-
}
182-
183179
get onDidChangeSelection(): Event<IListEvent<T>> {
184180
return Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
185181
}
186182

187-
get onPin(): Event<IListEvent<T>> {
188-
return Event.map(this.list.onDidPin, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
189-
}
190-
191183
get onContextMenu(): Event<IListContextMenuEvent<T>> {
192184
return Event.map(this.list.onContextMenu, ({ element, index, anchor, browserEvent }) => (typeof element === 'undefined' ? { element, index, anchor, browserEvent } : { element: this._model.get(element), index, anchor, browserEvent }));
193185
}
@@ -221,10 +213,6 @@ export class PagedList<T> implements IDisposable {
221213
this.list.scrollLeft = scrollLeft;
222214
}
223215

224-
open(indexes: number[], browserEvent?: UIEvent): void {
225-
this.list.open(indexes, browserEvent);
226-
}
227-
228216
setFocus(indexes: number[]): void {
229217
this.list.setFocus(indexes);
230218
}

src/vs/base/browser/ui/list/listWidget.ts

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,6 @@ export class MouseController<T> implements IDisposable {
627627

628628
const focus = this.list.getFocus();
629629
this.list.setSelection(focus, e.browserEvent);
630-
this.list.pin(focus);
631630
}
632631

633632
private changeSelection(e: IListMouseEvent<T> | IListTouchEvent<T>, reference: number | undefined): void {
@@ -1106,12 +1105,6 @@ export class List<T> implements ISpliceable<T>, IDisposable {
11061105
return Event.map(this.eventBufferer.wrapEvent(this.selection.onChange), e => this.toListEvent(e));
11071106
}
11081107

1109-
private readonly _onDidOpen = new Emitter<IListEvent<T>>();
1110-
readonly onDidOpen: Event<IListEvent<T>> = this._onDidOpen.event;
1111-
1112-
private readonly _onDidPin = new Emitter<IListEvent<T>>();
1113-
readonly onDidPin: Event<IListEvent<T>> = this._onDidPin.event;
1114-
11151108
get domId(): string { return this.view.domId; }
11161109
get onDidScroll(): Event<ScrollEvent> { return this.view.onDidScroll; }
11171110
get onMouseClick(): Event<IListMouseEvent<T>> { return this.view.onMouseClick; }
@@ -1597,26 +1590,6 @@ export class List<T> implements ISpliceable<T>, IDisposable {
15971590
return this.view.domNode;
15981591
}
15991592

1600-
open(indexes: number[], browserEvent?: UIEvent): void {
1601-
for (const index of indexes) {
1602-
if (index < 0 || index >= this.length) {
1603-
throw new ListError(this.user, `Invalid index ${index}`);
1604-
}
1605-
}
1606-
1607-
this._onDidOpen.fire({ indexes, elements: indexes.map(i => this.view.element(i)), browserEvent });
1608-
}
1609-
1610-
pin(indexes: number[], browserEvent?: UIEvent): void {
1611-
for (const index of indexes) {
1612-
if (index < 0 || index >= this.length) {
1613-
throw new ListError(this.user, `Invalid index ${index}`);
1614-
}
1615-
}
1616-
1617-
this._onDidPin.fire({ indexes, elements: indexes.map(i => this.view.element(i)), browserEvent });
1618-
}
1619-
16201593
style(styles: IListStyles): void {
16211594
this.styleController.style(styles);
16221595
}
@@ -1659,8 +1632,6 @@ export class List<T> implements ISpliceable<T>, IDisposable {
16591632
this._onDidDispose.fire();
16601633
this.disposables.dispose();
16611634

1662-
this._onDidOpen.dispose();
1663-
this._onDidPin.dispose();
16641635
this._onDidDispose.dispose();
16651636
}
16661637
}

src/vs/base/browser/ui/tree/abstractTree.ts

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import 'vs/css!./media/tree';
77
import { IDisposable, dispose, Disposable, toDisposable, DisposableStore } from 'vs/base/common/lifecycle';
88
import { IListOptions, List, IListStyles, MouseController, DefaultKeyboardNavigationDelegate } from 'vs/base/browser/ui/list/listWidget';
9-
import { IListVirtualDelegate, IListRenderer, IListMouseEvent, IListEvent, IListContextMenuEvent, IListDragAndDrop, IListDragOverReaction, IKeyboardNavigationLabelProvider, IIdentityProvider, IKeyboardNavigationDelegate } from 'vs/base/browser/ui/list/list';
9+
import { IListVirtualDelegate, IListRenderer, IListMouseEvent, IListContextMenuEvent, IListDragAndDrop, IListDragOverReaction, IKeyboardNavigationLabelProvider, IIdentityProvider, IKeyboardNavigationDelegate } from 'vs/base/browser/ui/list/list';
1010
import { append, $, toggleClass, getDomNodePagePosition, removeClass, addClass, hasClass, hasParentWithClass, createStyleSheet, clearNode, addClasses, removeClasses } from 'vs/base/browser/dom';
1111
import { Event, Relay, Emitter, EventBufferer } from 'vs/base/common/event';
1212
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
@@ -921,13 +921,6 @@ function isInputElement(e: HTMLElement): boolean {
921921
return e.tagName === 'INPUT' || e.tagName === 'TEXTAREA';
922922
}
923923

924-
function asTreeEvent<T>(event: IListEvent<ITreeNode<T, any>>): ITreeEvent<T> {
925-
return {
926-
elements: event.elements.map(node => node.element),
927-
browserEvent: event.browserEvent
928-
};
929-
}
930-
931924
function asTreeMouseEvent<T>(event: IListMouseEvent<ITreeNode<T, any>>): ITreeMouseEvent<T> {
932925
let target: TreeMouseEventTarget = TreeMouseEventTarget.Unknown;
933926

@@ -960,7 +953,6 @@ export interface IAbstractTreeOptionsUpdate extends ITreeRendererOptions {
960953
readonly automaticKeyboardNavigation?: boolean;
961954
readonly simpleKeyboardNavigation?: boolean;
962955
readonly filterOnType?: boolean;
963-
readonly openOnSingleClick?: boolean;
964956
readonly smoothScrolling?: boolean;
965957
readonly horizontalScrolling?: boolean;
966958
}
@@ -1108,7 +1100,7 @@ class TreeNodeListMouseController<T, TFilterData, TRef> extends MouseController<
11081100

11091101
const onTwistie = hasClass(e.browserEvent.target as HTMLElement, 'monaco-tl-twistie');
11101102

1111-
if (!this.tree.openOnSingleClick && e.browserEvent.detail !== 2 && !onTwistie) {
1103+
if (e.browserEvent.detail !== 2 && !onTwistie) {
11121104
return super.onPointer(e);
11131105
}
11141106

@@ -1238,8 +1230,6 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
12381230

12391231
get onDidChangeFocus(): Event<ITreeEvent<T>> { return this.eventBufferer.wrapEvent(this.focus.onDidChange); }
12401232
get onDidChangeSelection(): Event<ITreeEvent<T>> { return this.eventBufferer.wrapEvent(this.selection.onDidChange); }
1241-
get onDidOpen(): Event<ITreeEvent<T>> { return Event.map(this.view.onDidOpen, asTreeEvent); }
1242-
get onDidPin(): Event<ITreeEvent<T>> { return Event.map(this.view.onDidPin, asTreeEvent); }
12431233

12441234
get onMouseClick(): Event<ITreeMouseEvent<T>> { return Event.map(this.view.onMouseClick, asTreeMouseEvent); }
12451235
get onMouseDblClick(): Event<ITreeMouseEvent<T>> { return Event.map(this.view.onMouseDblClick, asTreeMouseEvent); }
@@ -1261,7 +1251,6 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
12611251
get filterOnType(): boolean { return !!this._options.filterOnType; }
12621252
get onDidChangeTypeFilterPattern(): Event<string> { return this.typeFilterController ? this.typeFilterController.onDidChangePattern : Event.None; }
12631253

1264-
get openOnSingleClick(): boolean { return typeof this._options.openOnSingleClick === 'undefined' ? true : this._options.openOnSingleClick; }
12651254
get expandOnlyOnTwistieClick(): boolean | ((e: T) => boolean) { return typeof this._options.expandOnlyOnTwistieClick === 'undefined' ? false : this._options.expandOnlyOnTwistieClick; }
12661255

12671256
private readonly _onDidUpdateOptions = new Emitter<IAbstractTreeOptions<T, TFilterData>>();
@@ -1602,11 +1591,6 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
16021591
return this.focus.get();
16031592
}
16041593

1605-
open(elements: TRef[], browserEvent?: UIEvent): void {
1606-
const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i >= 0);
1607-
this.view.open(indexes, browserEvent);
1608-
}
1609-
16101594
reveal(location: TRef, relativeTop?: number): void {
16111595
this.model.expandTo(location);
16121596

src/vs/base/browser/ui/tree/asyncDataTree.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,6 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
330330

331331
get onDidChangeFocus(): Event<ITreeEvent<T>> { return Event.map(this.tree.onDidChangeFocus, asTreeEvent); }
332332
get onDidChangeSelection(): Event<ITreeEvent<T>> { return Event.map(this.tree.onDidChangeSelection, asTreeEvent); }
333-
get onDidOpen(): Event<ITreeEvent<T>> { return Event.map(this.tree.onDidOpen, asTreeEvent); }
334333

335334
get onKeyDown(): Event<KeyboardEvent> { return this.tree.onKeyDown; }
336335
get onMouseClick(): Event<ITreeMouseEvent<T>> { return Event.map(this.tree.onMouseClick, asTreeMouseEvent); }
@@ -344,7 +343,6 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
344343
get onDidUpdateOptions(): Event<IAsyncDataTreeOptionsUpdate> { return this.tree.onDidUpdateOptions; }
345344

346345
get filterOnType(): boolean { return this.tree.filterOnType; }
347-
get openOnSingleClick(): boolean { return this.tree.openOnSingleClick; }
348346
get expandOnlyOnTwistieClick(): boolean | ((e: T) => boolean) {
349347
if (typeof this.tree.expandOnlyOnTwistieClick === 'boolean') {
350348
return this.tree.expandOnlyOnTwistieClick;
@@ -671,11 +669,6 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
671669
return nodes.map(n => n!.element as T);
672670
}
673671

674-
open(elements: T[], browserEvent?: UIEvent): void {
675-
const nodes = elements.map(e => this.getDataNode(e));
676-
this.tree.open(nodes, browserEvent);
677-
}
678-
679672
reveal(element: T, relativeTop?: number): void {
680673
this.tree.reveal(this.getDataNode(element), relativeTop);
681674
}

src/vs/editor/contrib/gotoSymbol/peek/referencesWidget.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,16 +378,16 @@ export class ReferenceWidget extends peekView.PeekViewWidget {
378378
this._tree.onDidOpen(e => {
379379
if (e.browserEvent instanceof MouseEvent && (e.browserEvent.ctrlKey || e.browserEvent.metaKey || e.browserEvent.altKey)) {
380380
// modifier-click -> open to the side
381-
onEvent(e.elements[0], 'side');
381+
onEvent(e.element, 'side');
382382
} else if (e.browserEvent instanceof KeyboardEvent || (e.browserEvent instanceof MouseEvent && e.browserEvent.detail === 2) || (<GestureEvent>e.browserEvent).tapCount === 2) {
383383
// keybinding (list service command)
384384
// OR double click
385385
// OR double tap
386386
// -> close widget and goto target
387-
onEvent(e.elements[0], 'goto');
387+
onEvent(e.element, 'goto');
388388
} else {
389389
// preview location
390-
onEvent(e.elements[0], 'show');
390+
onEvent(e.element, 'show');
391391
}
392392
});
393393

0 commit comments

Comments
 (0)