Minor improvements in notebook edit mode handling (#21839)

* rename + remove duplicate calls

* only fire onCellEditModeChanged when changed
This commit is contained in:
Lucy Zhang
2023-02-06 10:42:19 -08:00
committed by GitHub
parent 2767ff819d
commit b3048213e8
8 changed files with 27 additions and 31 deletions

View File

@@ -60,7 +60,7 @@ export class CellModel extends Disposable implements ICellModel {
private _isEditMode: boolean;
private _onOutputsChanged = new Emitter<IOutputChangedEvent>();
private _onTableUpdated = new Emitter<ITableUpdatedEvent>();
private _onCellModeChanged = new Emitter<boolean>();
private _onCellEditModeChanged = new Emitter<boolean>();
private _onExecutionStateChanged = new Emitter<CellExecutionState>();
private _onCurrentEditModeChanged = new Emitter<CellEditModes>();
private _isTrusted: boolean;
@@ -149,8 +149,8 @@ export class CellModel extends Disposable implements ICellModel {
return this._onTableUpdated.event;
}
public get onCellModeChanged(): Event<boolean> {
return this._onCellModeChanged.event;
public get onCellEditModeChanged(): Event<boolean> {
return this._onCellEditModeChanged.event;
}
public set metadata(data: any) {
@@ -241,19 +241,21 @@ export class CellModel extends Disposable implements ICellModel {
}
public set isEditMode(isEditMode: boolean) {
this._isEditMode = isEditMode;
if (this._isEditMode) {
const newEditMode = this._lastEditMode ?? this._defaultTextEditMode;
this.showPreview = newEditMode !== TextCellEditModes.Markdown;
this.showMarkdown = newEditMode !== TextCellEditModes.RichText;
} else {
// when not in edit mode, default the values since they are only valid when editing.
// And to return the correct currentMode value.
this._showMarkdown = false;
this._showPreview = true;
if (this._isEditMode !== isEditMode) {
this._isEditMode = isEditMode;
if (this._isEditMode) {
const newEditMode = this._lastEditMode ?? this._defaultTextEditMode;
this.showPreview = newEditMode !== TextCellEditModes.Markdown;
this.showMarkdown = newEditMode !== TextCellEditModes.RichText;
} else {
// when not in edit mode, default the values since they are only valid when editing.
// And to return the correct currentMode value.
this._showMarkdown = false;
this._showPreview = true;
}
this._onCellEditModeChanged.fire(this._isEditMode);
// Note: this does not require a notebook update as it does not change overall state
}
this._onCellModeChanged.fire(this._isEditMode);
// Note: this does not require a notebook update as it does not change overall state
}
public get trustedMode(): boolean {

View File

@@ -455,7 +455,7 @@ export interface ICellModel {
readonly onLanguageChanged: Event<string>;
readonly onCollapseStateChanged: Event<boolean>;
readonly onParameterStateChanged: Event<boolean>;
readonly onCellModeChanged: Event<boolean>;
readonly onCellEditModeChanged: Event<boolean>;
modelContentChangedEvent: IModelContentChangedEvent;
isEditMode: boolean;
showPreview: boolean;