|
@@ -214,6 +214,28 @@ class NotebookFileHandler extends AbstractFileHandler<NotebookContainer> {
|
|
|
if (w) w.model.selectPreviousCell();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Set the dirty state of a widget (defaults to current active widget).
|
|
|
+ */
|
|
|
+ setDirty(widget?: NotebookContainer): void {
|
|
|
+ super.setDirty(widget);
|
|
|
+ widget = this.resolveWidget(widget);
|
|
|
+ if (widget) {
|
|
|
+ widget.model.dirty = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Clear the dirty state of a widget (defaults to current active widget).
|
|
|
+ */
|
|
|
+ clearDirty(widget?: NotebookContainer): void {
|
|
|
+ super.clearDirty(widget);
|
|
|
+ widget = this.resolveWidget(widget);
|
|
|
+ if (widget) {
|
|
|
+ widget.model.dirty = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Get options use to fetch the model contents from disk.
|
|
|
*/
|
|
@@ -234,6 +256,7 @@ class NotebookFileHandler extends AbstractFileHandler<NotebookContainer> {
|
|
|
*/
|
|
|
protected createWidget(contents: IContentsModel): NotebookContainer {
|
|
|
let panel = new NotebookContainer();
|
|
|
+ panel.model.stateChanged.connect(this._onModelChanged, this);
|
|
|
panel.title.text = contents.name;
|
|
|
panel.addClass(notebookContainerClass);
|
|
|
|