diff --git a/src/sql/workbench/contrib/notebook/browser/models/notebookInput.ts b/src/sql/workbench/contrib/notebook/browser/models/notebookInput.ts index 6d6ac447ba..3df053305a 100644 --- a/src/sql/workbench/contrib/notebook/browser/models/notebookInput.ts +++ b/src/sql/workbench/contrib/notebook/browser/models/notebookInput.ts @@ -36,6 +36,7 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import { INotification, INotificationService } from 'vs/platform/notification/common/notification'; import Severity from 'vs/base/common/severity'; import * as nls from 'vs/nls'; +import { NotebookModel } from 'sql/workbench/services/notebook/browser/models/notebookModel'; export type ModeViewSaveHandler = (handle: number) => Thenable; @@ -87,6 +88,12 @@ export class NotebookEditorModel extends EditorModel { let dirty = this.textEditorModel instanceof ResourceEditorModel ? false : this.textEditorModel.isDirty(); this.setDirty(dirty); })); + this._register(this.textEditorModel.onDidLoad(async (e) => { + if (this.textEditorModel instanceof TextFileEditorModel) { + let model = this.getNotebookModel() as NotebookModel; + await model.loadContents(model.trustedMode, true); + } + })); } } this._dirty = this.textEditorModel instanceof ResourceEditorModel ? false : this.textEditorModel.isDirty(); diff --git a/src/sql/workbench/contrib/notebook/browser/notebook.component.ts b/src/sql/workbench/contrib/notebook/browser/notebook.component.ts index 64b2f96dea..34769e4457 100644 --- a/src/sql/workbench/contrib/notebook/browser/notebook.component.ts +++ b/src/sql/workbench/contrib/notebook/browser/notebook.component.ts @@ -339,6 +339,7 @@ export class NotebookComponent extends AngularDisposable implements OnInit, OnDe this._register(model.onProviderIdChange((provider) => this.handleProviderIdChanged(provider))); this._register(model.kernelChanged((kernelArgs) => this.handleKernelChanged(kernelArgs))); this._register(model.onCellTypeChanged(() => this.detectChanges())); + this._register(model.layoutChanged(() => this.detectChanges())); this._model = this._register(model); await this._model.loadContents(trusted); this.setLoading(false); diff --git a/src/sql/workbench/services/notebook/browser/models/notebookModel.ts b/src/sql/workbench/services/notebook/browser/models/notebookModel.ts index 655997ad4d..d8a663f0f7 100644 --- a/src/sql/workbench/services/notebook/browser/models/notebookModel.ts +++ b/src/sql/workbench/services/notebook/browser/models/notebookModel.ts @@ -322,7 +322,7 @@ export class NotebookModel extends Disposable implements INotebookModel { return !ids ? [] : ids; } - public async loadContents(isTrusted: boolean = false): Promise { + public async loadContents(isTrusted = false, forceLayoutChange = false): Promise { try { this._trustedMode = isTrusted; @@ -369,6 +369,9 @@ export class NotebookModel extends Disposable implements INotebookModel { if (this._cells.length === 0 || this._cells.every(cell => cell.cellType === CellTypes.Markdown)) { this.trustedMode = true; } + if (forceLayoutChange) { + this._layoutChanged.fire(); + } } catch (error) { this._inErrorState = true; throw error;