Przeglądaj źródła

Revert "Backport/3.2.x/11608 Toggle side-by-side rendering for current notebook" (#11793)

Frédéric Collonval 3 lat temu
rodzic
commit
df6c0ee412

BIN
galata/test/jupyterlab/menus.test.ts-snapshots/opened-menu-view-jupyterlab-linux.png


BIN
galata/test/jupyterlab/notebook-create.test.ts-snapshots/opened-menu-view-jupyterlab-linux.png


+ 5 - 16
packages/notebook-extension/schema/tracker.json

@@ -165,7 +165,7 @@
             "rank": 11
           },
           {
-            "command": "notebook:toggle-render-side-by-side-current",
+            "command": "notebook:toggle-render-side-by-side",
             "rank": 12
           },
           {
@@ -585,11 +585,6 @@
     },
     {
       "command": "notebook:toggle-render-side-by-side",
-      "keys": ["Ctrl Shift R"],
-      "selector": ".jp-Notebook:focus"
-    },
-    {
-      "command": "notebook:toggle-render-side-by-side-current",
       "keys": ["Shift R"],
       "selector": ".jp-Notebook:focus"
     }
@@ -829,17 +824,11 @@
       "type": "boolean",
       "default": false
     },
-    "showHiddenCellsButton": {
+    "sideBySideRendering": {
+      "title": "Side-by-side rendering",
+      "description": "Global setting to enable side-by-side rendering in notebooks",
       "type": "boolean",
-      "title": "Show hidden cells button if collapsed",
-      "description": "If set to true, a button is shown below collapsed headings, indicating how many cells are hidden beneath the collapsed heading.",
-      "default": true
-    },
-    "renderingLayout": {
-      "title": "Rendering Layout",
-      "description": "Global setting to define the rendering layout in notebooks. 'default' or 'side-by-side' are supported.",
-      "type": "string",
-      "default": "default"
+      "default": false
     }
   },
   "additionalProperties": false,

+ 28 - 24
packages/notebook-extension/src/index.ts

@@ -239,8 +239,7 @@ namespace CommandIDs {
 
   export const showAllOutputs = 'notebook:show-all-cell-outputs';
 
-  export const toggleRenderSideBySideCurrentNotebook =
-    'notebook:toggle-render-side-by-side-current';
+  export const toggleRenderSideBySide = 'notebook:toggle-render-side-by-side';
 
   export const setSideBySideRatio = 'notebook:set-side-by-side-ratio';
 
@@ -1192,10 +1191,7 @@ function activateNotebookHandler(
       maxNumberOutputs: settings.get('maxNumberOutputs').composite as number,
       disableDocumentWideUndoRedo: settings.get(
         'experimentalDisableDocumentWideUndoRedo'
-      ).composite as boolean,
-      renderingLayout: settings.get('renderingLayout').composite as
-        | 'default'
-        | 'side-by-side'
+      ).composite as boolean
     };
     factory.shutdownOnClose = settings.get('kernelShutdown')
       .composite as boolean;
@@ -1204,6 +1200,10 @@ function activateNotebookHandler(
       'experimentalDisableDocumentWideUndoRedo'
     ).composite as boolean;
 
+    Private.renderSideBySide = !settings.get('sideBySideRendering')
+      .composite as boolean;
+    commands.execute(CommandIDs.toggleRenderSideBySide);
+
     updateTracker({
       editorConfig: factory.editorConfig,
       notebookConfig: factory.notebookConfig,
@@ -2134,26 +2134,28 @@ function addCommands(
     isEnabled
   });
 
-  commands.addCommand(CommandIDs.toggleRenderSideBySideCurrentNotebook, {
-    label: trans.__('Render Side-by-Side'),
+  commands.addCommand(CommandIDs.toggleRenderSideBySide, {
+    label: trans.__('Render Side-by-side'),
     execute: args => {
-      const current = getCurrent(tracker, shell, args);
-      if (current) {
-        if (current.content.renderingLayout === 'side-by-side') {
-          return NotebookActions.renderDefault(current.content);
+      Private.renderSideBySide = !Private.renderSideBySide;
+      tracker.forEach(widget => {
+        if (widget) {
+          if (Private.renderSideBySide) {
+            return NotebookActions.renderSideBySide(widget.content);
+          }
+          return NotebookActions.renderNotSideBySide(widget.content);
         }
-        return NotebookActions.renderSideBySide(current.content);
-      }
+      });
+      tracker.currentChanged.connect(() => {
+        if (Private.renderSideBySide && tracker.currentWidget) {
+          return NotebookActions.renderSideBySide(
+            tracker.currentWidget.content
+          );
+        }
+      });
     },
-    isEnabled,
-    isToggled: args => {
-      const current = getCurrent(tracker, shell, { ...args, activate: false });
-      if (current) {
-        return current.content.renderingLayout === 'side-by-side';
-      } else {
-        return false;
-      }
-    }
+    isToggled: () => Private.renderSideBySide,
+    isEnabled
   });
 
   commands.addCommand(CommandIDs.setSideBySideRatio, {
@@ -2349,7 +2351,7 @@ function populatePalette(
     CommandIDs.showOutput,
     CommandIDs.hideAllOutputs,
     CommandIDs.showAllOutputs,
-    CommandIDs.toggleRenderSideBySideCurrentNotebook,
+    CommandIDs.toggleRenderSideBySide,
     CommandIDs.setSideBySideRatio,
     CommandIDs.enableOutputScrolling,
     CommandIDs.disableOutputScrolling
@@ -2709,4 +2711,6 @@ namespace Private {
       translator?: ITranslator;
     }
   }
+
+  export let renderSideBySide = false;
 }

+ 5 - 3
packages/notebook/src/actions.tsx

@@ -33,6 +33,8 @@ import { Notebook, StaticNotebook } from './widget';
  */
 const JUPYTER_CELL_MIME = 'application/vnd.jupyter.cells';
 
+const SIDE_BY_SIDE_CLASS = 'jp-mod-sideBySide';
+
 export class KernelError extends Error {
   /**
    * Exception name
@@ -1329,7 +1331,7 @@ export namespace NotebookActions {
    * @param notebook - The target notebook widget.
    */
   export function renderSideBySide(notebook: Notebook): void {
-    notebook.renderingLayout = 'side-by-side';
+    notebook.node.classList.add(SIDE_BY_SIDE_CLASS);
   }
 
   /**
@@ -1337,8 +1339,8 @@ export namespace NotebookActions {
    *
    * @param notebook - The target notebook widget.
    */
-  export function renderDefault(notebook: Notebook): void {
-    notebook.renderingLayout = 'default';
+  export function renderNotSideBySide(notebook: Notebook): void {
+    notebook.node.classList.remove(SIDE_BY_SIDE_CLASS);
   }
 
   /**

+ 1 - 28
packages/notebook/src/widget.ts

@@ -133,18 +133,11 @@ const DRAG_THRESHOLD = 5;
  */
 type InsertType = 'push' | 'insert' | 'set';
 
-/*
- * The rendering mode for the notebook.
- */
-type RenderingLayout = 'default' | 'side-by-side';
-
 /**
  * The class attached to the heading collapser button
  */
 const HEADING_COLLAPSER_CLASS = 'jp-collapseHeadingButton';
 
-const SIDE_BY_SIDE_CLASS = 'jp-mod-sideBySide';
-
 /**
  * The interactivity modes for the notebook.
  */
@@ -198,7 +191,6 @@ export class StaticNotebook extends Widget {
     this.notebookConfig =
       options.notebookConfig || StaticNotebook.defaultNotebookConfig;
     this._mimetypeService = options.mimeTypeService;
-    this.renderingLayout = options.notebookConfig?.renderingLayout;
 
     // Section for the virtual-notebook behavior.
     this._toRenderMap = new Map<string, { index: number; cell: Cell }>();
@@ -340,18 +332,6 @@ export class StaticNotebook extends Widget {
     this._updateNotebookConfig();
   }
 
-  get renderingLayout(): RenderingLayout | undefined {
-    return this._renderingLayout;
-  }
-  set renderingLayout(value: RenderingLayout | undefined) {
-    this._renderingLayout = value;
-    if (this._renderingLayout === 'side-by-side') {
-      this.node.classList.add(SIDE_BY_SIDE_CLASS);
-    } else {
-      this.node.classList.remove(SIDE_BY_SIDE_CLASS);
-    }
-  }
-
   /**
    * Dispose of the resources held by the widget.
    */
@@ -823,7 +803,6 @@ export class StaticNotebook extends Widget {
   private _renderedCellsCount = 0;
   private _toRenderMap: Map<string, { index: number; cell: Cell }>;
   private _cellsArray: Array<Cell>;
-  private _renderingLayout: RenderingLayout | undefined;
 }
 
 /**
@@ -992,11 +971,6 @@ export namespace StaticNotebook {
      * Defines if the document can be undo/redo.
      */
     disableDocumentWideUndoRedo: boolean;
-
-    /**
-     * Defines the rendering layout to use.
-     */
-    renderingLayout: RenderingLayout;
   }
 
   /**
@@ -1011,8 +985,7 @@ export namespace StaticNotebook {
     observedTopMargin: '1000px',
     observedBottomMargin: '1000px',
     maxNumberOutputs: 50,
-    disableDocumentWideUndoRedo: false,
-    renderingLayout: 'default'
+    disableDocumentWideUndoRedo: false
   };
 
   /**

+ 1 - 2
packages/notebook/test/widget.spec.ts

@@ -42,8 +42,7 @@ const notebookConfig = {
   observedTopMargin: '1000px',
   observedBottomMargin: '1000px',
   maxNumberOutputs: 50,
-  disableDocumentWideUndoRedo: true,
-  renderingLayout: 'default' as 'default' | 'side-by-side'
+  disableDocumentWideUndoRedo: true
 };
 
 const options: Notebook.IOptions = {