未验证 提交 dd58b1fe 编写于 作者: R rebornix

fix #121647

上级 502ebdb1
...@@ -1185,6 +1185,16 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor ...@@ -1185,6 +1185,16 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor
store.add((cell as CodeCellViewModel).onDidRemoveOutputs((outputs) => { store.add((cell as CodeCellViewModel).onDidRemoveOutputs((outputs) => {
outputs.forEach(output => this.removeInset(output)); outputs.forEach(output => this.removeInset(output));
})); }));
store.add((cell as CodeCellViewModel).onDidHideOutputs((outputs) => {
outputs.forEach(output => this.hideInset(output));
}));
}
if (cell.cellKind === CellKind.Markdown) {
store.add((cell as MarkdownCellViewModel).onDidHideInput(() => {
this.hideMarkdownPreviews([(cell as MarkdownCellViewModel)]);
}));
} }
return store; return store;
......
...@@ -24,6 +24,10 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod ...@@ -24,6 +24,10 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod
readonly onDidChangeOutputs = this._onDidChangeOutputs.event; readonly onDidChangeOutputs = this._onDidChangeOutputs.event;
private readonly _onDidRemoveOutputs = new Emitter<readonly ICellOutputViewModel[]>(); private readonly _onDidRemoveOutputs = new Emitter<readonly ICellOutputViewModel[]>();
readonly onDidRemoveOutputs = this._onDidRemoveOutputs.event; readonly onDidRemoveOutputs = this._onDidRemoveOutputs.event;
private readonly _onDidHideInput = new Emitter<void>();
readonly onDidHideInput = this._onDidHideInput.event;
private readonly _onDidHideOutputs = new Emitter<readonly ICellOutputViewModel[]>();
readonly onDidHideOutputs = this._onDidHideOutputs.event;
private _outputCollection: number[] = []; private _outputCollection: number[] = [];
private _outputsTop: PrefixSumComputer | null = null; private _outputsTop: PrefixSumComputer | null = null;
...@@ -113,6 +117,16 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod ...@@ -113,6 +117,16 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod
this.layoutChange({ outputHeight: true }, 'CodeCellViewModel#model.onDidChangeOutputs'); this.layoutChange({ outputHeight: true }, 'CodeCellViewModel#model.onDidChangeOutputs');
})); }));
this._register(this.model.onDidChangeMetadata(e => {
if (this.metadata?.outputCollapsed) {
this._onDidHideOutputs.fire(this.outputsViewModels.slice(0));
}
if (this.metadata?.inputCollapsed) {
this._onDidHideInput.fire();
}
}));
this._outputCollection = new Array(this.model.outputs.length); this._outputCollection = new Array(this.model.outputs.length);
this._layoutInfo = { this._layoutInfo = {
......
...@@ -94,6 +94,9 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie ...@@ -94,6 +94,9 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie
return this.model.getHashValue(); return this.model.getHashValue();
} }
private readonly _onDidHideInput = new Emitter<void>();
readonly onDidHideInput = this._onDidHideInput.event;
constructor( constructor(
viewType: string, viewType: string,
model: NotebookCellTextModel, model: NotebookCellTextModel,
...@@ -117,6 +120,12 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie ...@@ -117,6 +120,12 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie
this._register(this.onDidChangeState(e => { this._register(this.onDidChangeState(e => {
eventDispatcher.emit([new NotebookCellStateChangedEvent(e, this)]); eventDispatcher.emit([new NotebookCellStateChangedEvent(e, this)]);
})); }));
this._register(model.onDidChangeMetadata(e => {
if (this.metadata?.inputCollapsed) {
this._onDidHideInput.fire();
}
}));
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册